关于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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理