搭建 Kubernetes 集群需要掌握以下知识点:
- Docker 容器化技术
- Kubernetes 架构和原理
- etcd 分布式键值存储系统
- Flannel 网络插件
接下来,我们将详细介绍如何在 CentOS 7 上搭建一个 Kubernetes 集群。
准备工作:
- 三台 CentOS 7.x 节点,分别为 k8s-master、k8s-node1 和 k8s-node2。
- 所有节点必须能够互相联通,可以在 /etc/hosts 文件中定义节点之间的 IP 地址和主机名。
- 所有节点上已安装了 Docker,并启动了 Docker 服务。
第一步:安装 Kubernetes 组件
在所有节点上安装 Kubernetes 组件:
$ yum install -y kubelet kubeadm kubectl
第二步:初始化 Kubernetes 主节点
在 Kubernetes 主节点(k8s-master)上执行以下命令:
$ kubeadm init --pod-network-cidr=10.244.0.0/16
此命令会自动下载所需文件并初始化 Kubernetes 集群。其中,–pod-network-cidr 参数指定了 Flannel 网络插件使用的 Pod 网段。
初始化完成后,会输出一个类似于以下的提示信息:
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
请按照提示信息执行以下命令:
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
这样,就可以使用 kubectl 命令管理 Kubernetes 集群了。
第三步:安装 Flannel 网络插件
在 Kubernetes 主节点上执行以下命令安装 Flannel 网络插件:
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
此命令会下载 kube-flannel.yml 文件并应用到 Kubernetes 集群中。
第四步:将其他节点加入 Kubernetes 集群
在 k8s-master 节点上执行以下命令获取加入集群所需的命令:
$ kubeadm token create --print-join-command
此命令会输出一个类似于以下的命令:
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
请将以上命令复制到 k8s-node1 和 k8s-node2 节点上执行,将它们加入 Kubernetes 集群中。
第五步:验证 Kubernetes 集群
在 k8s-master 节点上执行以下命令查看 Kubernetes 集群状态:
$ kubectl get nodes
此命令应该输出所有节点的状态,类似于以下的示例:
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 69m v1.22.3
k8s-node1 Ready <none> 67m v1.22.3
k8s-node2 Ready <none> 67m v1.22.3
至此,Kubernetes 集群已经搭建完成。您可以使用 kubectl 命令部署应用程序并管理 Kubernetes 集群了。