Kubernetes (K8s) 是一个开源的容器编排平台,可以自动化容器化应用程序的部署、扩展和管理。以下是使用 Ubuntu 20.04 LTS 操作系统详细部署 Kubernetes 的步骤。
准备工作
系统要求
- 1 台主节点 (master)
- 1 台或多台工作节点 (worker)
- 每台机器至少 2 核 CPU,2 GB 内存
- 操作系统:Ubuntu 20.04 LTS
- 安装 Docker
设置主机名和网络
确保每台机器都有一个唯一的主机名并且可以互相访问:
sudo hostnamectl set-hostname <hostname>
在每台机器的 /etc/hosts 文件中添加主节点和所有工作节点的 IP 地址和主机名:
<master-ip> master
<worker1-ip> worker1
<worker2-ip> worker2
第一步:安装 Docker
在所有节点上安装 Docker:
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
第二步:安装 Kubernetes 工具
在所有节点上安装 kubeadm、kubelet 和 kubectl:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
第三步:禁用交换分区
在所有节点上禁用交换分区:
sudo swapoff -a
并编辑 /etc/fstab 文件,注释掉任何包含 swap 的行,以永久禁用交换:
# /swap.img none swap sw 0 0
第四步:初始化主节点
在主节点上运行以下命令初始化 Kubernetes 集群:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
完成后,您将看到一个输出,其中包含用于加入工作节点的 kubeadm join 命令。保存此命令以供后续步骤使用。
配置 kubectl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
第五步:部署网络插件
使用 Flannel 作为 Pod 网络插件:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
第六步:加入工作节点
在每个工作节点上运行 kubeadm join 命令以加入集群。该命令在主节点初始化时生成,类似如下:
sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
第七步:验证集群
在主节点上运行以下命令,确保所有节点都已成功加入集群:
kubectl get nodes
第八步:部署一个示例应用
为了验证 Kubernetes 集群是否正常工作,可以部署一个简单的 Nginx 应用:
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
获取 Nginx 服务的详细信息:
kubectl get svc nginx
通过 <master-ip>:<node-port> 访问 Nginx 应用,验证应用是否部署成功。
总结
通过上述步骤,您已经成功在 Ubuntu 20.04 LTS 上部署了一个基本的 Kubernetes 集群。您可以进一步探索和配置 Kubernetes,以满足您的具体需求,例如设置持久存储、配置负载均衡和实现自动化扩展等。
评论(0)
登录 后参与评论。