k8s的安装与使用

person 花一样的女孩    watch_later 2024-07-12 23:02:50
visibility 197    class k8s    bookmark 分享

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,以满足您的具体需求,例如设置持久存储、配置负载均衡和实现自动化扩展等。

参考链接

评论区
评论列表
menu