Kubernetes集群环境初始化攻略
1. 搭建虚拟机环境
使用 VirtualBox 或 VMware Workstation 搭建虚拟机环境,安装操作系统(建议使用 Ubuntu 18.04 LTS Server),配置网络等基本设置。
2. 安装 Docker
首先,更新apt包列表:
sudo apt-get update
接着,安装必要的依赖包:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
将官方GPG key添加到系统:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
添加Docker仓库到apt-get源:
echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
3. 安装 Kubernetes
添加 apt key:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
添加源到 apt-get:
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
安装必要的包:
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
将 kubelet 变成 systemd 服务:
sudo systemctl enable kubelet && sudo systemctl start kubelet
4. 初始化 Kubernetes Master
在 Master 节点上执行 kubeadm init 命令,同时需要提供 Pod 网段信息和 API server 地址。
示例:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.1.10
其中,--pod-network-cidr 表示分配给每个节点的 Pod IP 地址段,该处选择的是 flannel 的默认配置。
初始化成功后,根据命令的提示,将 $HOME/.kube/config 复制到 $HOME 下。
5. 初始化 Kubernetes Node(示例)
在 Node 节点上执行 kubeadm join 命令,同时需要提供 API server 地址和 token。
示例:
sudo kubeadm join 192.168.1.10:6443 --token wbtime.rqk8b7luk8ygivur \
--discovery-token-ca-cert-hash sha256:6dc7fa41f6fa6b5763afe3f30b14f220769bc08d4ed77868325e8686ad2dd782
其中,--token 和 --discovery-token-ca-cert-hash Denny kubeadm init 时生成的信息。
6. 安装 Pod 网络插件(示例)
Kubernetes 集群需要一种 CNI(Container Network Interface)插件来处理 Pod 网络。本教程选择 flannel。
# 在 Master 节点上执行
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.13.0/Documentation/kube-flannel.yml
7. 验证集群状态
# 在 Master 节点上执行
kubectl get nodes
输出类似如下信息,表示集群已经初始化成功,Node 节点已经加入集群:
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 2d22h v1.21.2
worker-1 Ready <none> 2d21h v1.21.2
worker-2 Ready <none> 2d20h v1.21.2
示例说明:搭建一个 Kubernetes 集群需要确保所有节点上的 Docker 版本一致,否则可能出现各种诡异的问题,建议使用 kubeadm 进行集群初始化。
实践中也可以使用 kubespray 等工具来完成 Kubernetes 集群的搭建操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Kubernetes集群环境初始化 - Python技术站