使用kubekey部署kubernetes集群

kubekey简介

kubeykey是KubeSphere基于Go 语言开发的kubernetes集群部署工具,使用 KubeKey,您可以轻松、高效、灵活地单独或整体安装 Kubernetes 和 KubeSphere。

KubeKey可以用于以下三种安装场景:

  • 仅安装 Kubernetes集群
  • 使用一个命令安装 Kubernetes 和 KubeSphere
  • 已有Kubernetes集群,使用ks-installer 在其上部署 KubeSphere

项目地址:https://github.com/kubesphere/kubekey 开源公司:青云

kubekey安装

下载kk二进制部署命令,您可以在任意节点下载该工具,比如准备一个部署节点,或者复用集群中已有节点:

wget https://github.com/kubesphere/kubekey/releases/download/v1.2.0-alpha.2/kubekey-v1.2.0-alpha.2-linux-amd64.tar.gz
tar -zxvf kubekey-v1.2.0-alpha.2-linux-amd64.tar.gz
mv kk /usr/local/bin/

脚本下载安装:

export KKZONE=cn
curl -sfL  | VERSION=v1.1.0 sh -
mv kk /usr/local/bin/

查看版本:

kk version

在所有节点上安装相关依赖

yum install -y socat conntrack ebtables ipset

所有节点关闭selinux和firewalld

setenforce 0 && sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
systemctl disable --now firewalld

所有节点时间同步

yum install -y chrony
systemctl enable --now chronyd
timedatectl set-timezone Asia/Shanghai

节点无需配置主机名,kubekey会自动纠正主机名。

部署单节点集群

部署单节点kubernetes

kk create cluster

同时部署kubernetes和kubesphere,可指定kubernetes版本或kubesphere版本

kk create cluster --with-kubernetes v1.20.4 --with-kubesphere v3.1.0

当指定安装KubeSphere时,要求集群中有可用的持久化存储。默认使用localVolume,如果需要使用其他持久化存储,请参阅addons配置。

部署多节点集群

准备6个节点,部署高可用kubernetes集群,kubekey的高可用实现目前是基于haproxy的本地负载均衡模式。

创建示例配置文件:

kk create config

根据您的环境修改配置文件config-sample.yaml,以下示例以部署3个master节点和3个node节点为例(不执行kubesphere部署,仅搭建kubernetes集群):

cat > config-sample.yaml <

使用配置文件创建集群

export KKZONE=cn
kk create cluster -f config-sample.yaml | tee kk.log

创建完成后查看节点状态

[root@kube-master1 ~]# kubectl get nodes -o wide
NAME          STATUS   ROLES                  AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION           CONTAINER-RUNTIME
kube-master1   Ready    control-plane,master   4m58s   v1.20.6   192.168.93.60   CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64   
kube-master2   Ready    control-plane,master   3m58s   v1.20.6   192.168.93.61   CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64   
kube-master3   Ready    control-plane,master   3m58s   v1.20.6   192.168.93.62   CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64   
kube-node1     Ready    worker                 4m13s   v1.20.6   192.168.93.63   CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64   
kube-node2     Ready    worker                 3m59s   v1.20.6   192.168.93.64   CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64   
kube-node3     Ready    worker                 3m59s   v1.20.6   192.168.93.65   CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64   

查看所有pod状态

[root@kube-master1 ~]# kubectl get pods -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-8545b68dd4-rbshc   1/1     Running   2          3m48s
kube-system   calico-node-5k7b5                          1/1     Running   1          3m48s
kube-system   calico-node-6cv8z                          1/1     Running   1          3m48s
kube-system   calico-node-8rbjs                          1/1     Running   0          3m48s
kube-system   calico-node-d6wkc                          1/1     Running   0          3m48s
kube-system   calico-node-q8qp8                          1/1     Running   0          3m48s
kube-system   calico-node-rvqpj                          1/1     Running   0          3m48s
kube-system   coredns-7f87749d6c-66wqb                   1/1     Running   0          4m58s
kube-system   coredns-7f87749d6c-htqww                   1/1     Running   0          4m58s
kube-system   haproxy-kube-node1                          1/1     Running   0          4m3s
kube-system   haproxy-kube-node2                          1/1     Running   0          4m3s
kube-system   haproxy-kube-node3                          1/1     Running   0          2m47s
kube-system   kube-apiserver-kube-master1                 1/1     Running   0          5m13s
kube-system   kube-apiserver-kube-master2                 1/1     Running   0          4m10s
kube-system   kube-apiserver-kube-master3                 1/1     Running   0          4m16s
kube-system   kube-controller-manager-kube-master1        1/1     Running   0          5m13s
kube-system   kube-controller-manager-kube-master2        1/1     Running   0          4m10s
kube-system   kube-controller-manager-kube-master3        1/1     Running   0          4m16s
kube-system   kube-proxy-2t5l6                           1/1     Running   0          3m55s
kube-system   kube-proxy-b8q6g                           1/1     Running   0          3m56s
kube-system   kube-proxy-dsz5g                           1/1     Running   0          3m55s
kube-system   kube-proxy-g2gxz                           1/1     Running   0          3m55s
kube-system   kube-proxy-p6gb7                           1/1     Running   0          3m57s
kube-system   kube-proxy-q44jp                           1/1     Running   0          3m56s
kube-system   kube-scheduler-kube-master1                 1/1     Running   0          5m13s
kube-system   kube-scheduler-kube-master2                 1/1     Running   0          4m10s
kube-system   kube-scheduler-kube-master3                 1/1     Running   0          4m16s
kube-system   nodelocaldns-l958t                         1/1     Running   0          4m19s
kube-system   nodelocaldns-n7vkn                         1/1     Running   0          4m18s
kube-system   nodelocaldns-q6wjc                         1/1     Running   0          4m33s
kube-system   nodelocaldns-sfmcc                         1/1     Running   0          4m58s
kube-system   nodelocaldns-tvdbh                         1/1     Running   0          4m18s
kube-system   nodelocaldns-vg5t7                         1/1     Running   0          4m19s

kubekey集群维护

添加节点

kk add nodes -f config-sample.yaml

删除节点

kk delete node  -f config-sample.yaml

删除集群

kk delete cluster
kk delete cluster [-f config-sample.yaml]

集群升级

kk upgrade [--with-kubernetes version] [--with-kubesphere version]
kk upgrade [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]

0 个评论

要回复文章请先登录注册