乐趣区

关于kubernetes:利用KubeKey安装Kubernetes

概述

官方网站:KubeKey (kubesphere.com.cn)

KubeKey(由 Go 语言开发)是一种全新的装置工具,代替了以前应用的基于 ansible 的安装程序。KubeKey 为您提供灵便的装置抉择,您能够仅装置 Kubernetes,也能够同时装置 Kubernetes 和 KubeSphere。

KubeSphere 是 GitHub 上的一个开源我的项目,是成千上万名社区用户的聚集地。很多用户都在应用 KubeSphere 运行工作负载。对于在 Linux 上的装置,KubeSphere 既能够部署在云端,也能够部署在本地环境中,例如 AWS EC2、Azure VM 和裸机等。

KubeKey 的几种应用场景:

  • 仅装置 Kubernetes;
  • 应用一个命令同时装置 Kubernetes 和 KubeSphere;
  • 扩缩集群;
  • 降级集群;
  • 装置 Kubernetes 相干的插件(Chart 或 YAML)。

咱们利用其装置 Kubernetes

装置步骤

下载 KubeKey

运行以下命令,以确保您从正确的区域下载 KubeKey。

export KKZONE=cn

运行以下命令来下载 KubeKey:

curl -sfL https://get-kk.kubesphere.io | VERSION=v2.2.2 sh -

KubeKey 的最新版本 (v2.2.2),能够更改命令中的版本号来下载特定的版本

筹备 Linux 主机

零碎要求

零碎 最低要求(每个节点)
Ubuntu 16.04,18.04,20.04,22.04 CPU:2 核,内存:4 G,硬盘:40 G
Debian Buster,Stretch CPU:2 核,内存:4 G,硬盘:40 G
CentOS 7.x CPU:2 核,内存:4 G,硬盘:40 G
Red Hat Enterprise Linux 7 CPU:2 核,内存:4 G,硬盘:40 G
SUSE Linux Enterprise Server 15 /openSUSE Leap 15.2 CPU:2 核,内存:4 G,硬盘:40 G

节点要求

  • 所有节点必须都能通过 SSH 拜访。
  • 所有节点工夫同步。
  • 所有节点都应应用 sudo/curl/openssl/tar。

容器运行时
KubeKey 会默认装置最新版本的 Docker。或者,也能够在创立集群前手动装置 Docker 或其余容器运行时。

反对的容器运行时 版本
Docker 19.3.8+
containerd 最新版
CRI-O(试验版,未经充沛测试) 最新版
iSula(试验版,未经充沛测试) 最新版

依赖项要求
KubeKey 能够一起装置 Kubernetes 和 KubeSphere。依据要装置的 Kubernetes 版本,须要装置的依赖项可能会不同。

依赖项 Kubernetes 版本 ≥ 1.18 Kubernetes 版本 < 1.18
socat 必须 可选,但倡议装置
conntrack 必须 可选,但倡议装置
ebtables 可选,但倡议装置 可选,但倡议装置
ipset 可选,但倡议装置 可选,但倡议装置

网络和 DNS 要求

  • 确保 /etc/resolv.conf 中的 DNS 地址可用,否则,可能会导致集群中的 DNS 呈现问题。
  • 敞开防火墙规定或平安组。
  • 反对的 CNI 插件:Calico 和 Flannel。

KubeKey 所有受反对的 Kubernetes 版本

运行 ./kk version --show-supported-k8s,查看能应用 KubeKey 装置的所有受反对的 Kubernetes 版本

[email protected]:~# ./kk version --show-supported-k8s。。。v1.21.2
v1.21.3
v1.21.4
v1.21.5
v1.21.6
v1.21.7
v1.21.8
v1.21.9
v1.21.10
v1.21.11
v1.21.12
v1.21.13
v1.22.0
v1.22.1
v1.22.2
v1.22.3
v1.22.4
v1.22.5
v1.22.6
v1.22.7
v1.22.8
v1.22.9
v1.22.10
v1.23.0
v1.23.1
v1.23.2
v1.23.3
v1.23.4
v1.23.5
v1.23.6
v1.23.7
v1.23.8
v1.24.0
v1.24.1

能够看到,还不反对最新的 1.25 版本。

然而,若需应用 KubeKey 来装置 Kubernetes 和 KubeSphere 3.3.0,请参见下表以查看所有受反对的 Kubernetes 版本。

KubeSphere 版本 受反对的 Kubernetes 版本
v3.3.0 v1.19.x、v1.20.x、v1.21.x、v1.22.x、v1.23.x(实验性反对)

创立 Cluster 配置文件并批改

./kk create config -f config-sample.yaml

[email protected]:/home/zyi#./kk create config -f config-sample.yaml
[email protected]:/home/zyi# vim config-sample.yaml 

apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: test-cluster
spec:
  hosts:
  - {name: cp4, address: 172.16.10.10, internalAddress: 172.16.10.10, password: "cisco123"}
  - {name: worker41, address: 172.16.10.11, internalAddress: 172.16.10.11, password: "cisco123"}
  roleGroups:
    etcd:
    - cp4
    control-plane:
    - cp4
    worker:
    - cp4
    - worker41
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers 
    # internalLoadbalancer: haproxy

    domain: lb.kubesphere.local
    address: ""
    port: 6443
  kubernetes:
    version: v1.24.1
    clusterName: cluster24.smartx.lab
    autoRenewCerts: true
    containerManager: containerd
  etcd:
    type: kubekey
  network:
    plugin: calico
    kubePodsCIDR: 10.244.64.0/18
    kubeServiceCIDR: 10.244.0.0/18
    ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
    multusCNI:
      enabled: false
  registry:
    privateRegistry: ""namespaceOverride:""
    registryMirrors: []
    insecureRegistries: []
  addons: []

以上配置应用:

  • 两节点 cp4/worker41;
  • Runtime-Containerd
  • Kubernetes 1.24.1
  • CNI-Calico

    运行 kk 创立集群

    ./kk create config -f config-sample.yaml

    [email protected]:/home/zyi# export KKZONE=cn 
    [email protected]:/home/zyi# ./kk create cluster -f config-sample.yaml 
    
     _   __      _          _   __           
    | | / /     | |        | | / /           
    | |/ / _   _| |__   ___| |/ /  ___ _   _ 
    |    \| | | | '_ \ / _ \    \ / _ \ | | |
    | |\  \ |_| | |_) |  __/ |\  \  __/ |_| |
    \_| \_/\__,_|_.__/ \___\_| \_/\___|\__, |
                                      __/ |
                                     |___/
    
    12:16:04 UTC [GreetingsModule] Greetings
    12:16:05 UTC message: [worker41]
    Greetings, KubeKey!
    12:16:05 UTC message: [cp4]
    Greetings, KubeKey!
    12:16:05 UTC success: [worker41]
    12:16:05 UTC success: [cp4]
    12:16:05 UTC [NodePreCheckModule] A pre-check on nodes
    12:16:05 UTC success: [worker41]
    12:16:05 UTC success: [cp4]
    12:16:05 UTC [ConfirmModule] Display confirmation form...
    
    Continue this installation? [yes/no]: yes
    12:16:08 UTC success: [LocalHost]
    12:16:08 UTC [NodeBinariesModule] Download installation binaries
    12:16:08 UTC message: [localhost]
    downloading amd64 kubeadm v1.24.1 ...
    12:16:08 UTC message: [localhost]
    kubeadm is existed
    12:16:08 UTC message: [localhost]
    downloading amd64 kubelet v1.24.1 ...
    12:16:09 UTC message: [localhost]
    kubelet is existed
    12:16:09 UTC message: [localhost]
    downloading amd64 kubectl v1.24.1 ...
    12:16:09 UTC message: [localhost]
    kubectl is existed
    12:16:09 UTC message: [localhost]
    downloading amd64 helm v3.6.3 ...
    ...
    
    Please check the result using the command:
    
          kubectl get pod -A

在 Master 下面查看集群状况

[email protected]:/home/zyi# kubectl get node
NAME       STATUS     ROLES                  AGE   VERSION
cp4        NotReady   control-plane,worker   44s   v1.24.1
worker41   NotReady   worker                 8s    v1.24.1

[email protected]:/home/zyi# kubectl get po -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-f9f9bbcc9-b2xxx   1/1     Running   0          22s
kube-system   calico-node-mcbpn                         1/1     Running   0          22s
kube-system   calico-node-zbm8p                         1/1     Running   0          22s
kube-system   coredns-f657fccfd-6tnvr                   1/1     Running   0          43s
kube-system   coredns-f657fccfd-rqwsm                   1/1     Running   0          43s
kube-system   kube-apiserver-cp4                        1/1     Running   0          58s
kube-system   kube-controller-manager-cp4               1/1     Running   0          57s
kube-system   kube-proxy-2q4p9                          1/1     Running   0          23s
kube-system   kube-proxy-ml5sx                          1/1     Running   0          43s
kube-system   kube-scheduler-cp4                        1/1     Running   0          56s
kube-system   nodelocaldns-4srdw                        1/1     Running   0          23s
kube-system   nodelocaldns-fd9gx                        1/1     Running   0          43s
退出移动版