Kubernetes 是一个开源容器编排系统,可以自动化部署,扩展和管理容器化应用程序。它提供了一种可靠的方式来管理容器化应用程序,以及在云环境中部署和管理容器化应用程序的能力。在本文中,我们将探讨如何使用 kubeadm 部署 Kubernetes 集群的过程。
准备工作
在开始之前,您需要准备以下工作:
- 一台运行 Ubuntu 16.04 或更高版本的服务器
- 三个以上的节点
- 每个节点至少 2GB 的内存和 2 个 CPU 核心
- 所有节点之间的网络连接
安装 Docker
在开始之前,我们需要安装 Docker。可以按照以下步骤安装:
更新 apt 包索引:
$ sudo apt-get update
安装 Docker:
$ sudo apt-get install -y docker.io
启动 Docker 服务:
$ sudo systemctl start docker
安装 kubeadm
kubeadm 是 Kubernetes 的一个组件,用于在单个主机或多个主机上进行快速部署。可以按照以下步骤安装 kubeadm:
更新 apt 包索引:
$ sudo apt-get update
安装 kubeadm、kubelet 和 kubectl:
$ sudo apt-get install -y apt-transport-https curl $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - $ 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 $ sudo apt-mark hold kubelet kubeadm kubectl
初始化 Kubernetes 集群
在安装 kubeadm 后,我们需要初始化 Kubernetes 集群。可以按照以下步骤进行初始化:
在主节点上初始化 Kubernetes 集群:
$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
这里的
--pod-network-cidr
参数是指定 Pod 网络的 IP 地址段。初始化后,将输出一个命令,您可以将其复制并在其他节点上运行,以加入 Kubernetes 集群。
$ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装网络插件:
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
在其他节点上运行命令,加入 Kubernetes 集群:
$ sudo kubeadm join <master-ip-address>:<master-port> --token <token> --discovery-token-ca-cert-hash <hash>
这里的
<master-ip-address>
、<master-port>
、<token>
和<hash>
是在主节点初始化时生成的。
部署应用程序
在成功部署 Kubernetes 集群后,可以部署应用程序。可以按照以下步骤部署应用程序:
创建一个 Deployment:
$ kubectl create deployment nginx --image=nginx
暴露 Deployment:
$ kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort
查看 Service 的 NodePort:
$ kubectl describe svc nginx
访问应用程序:
$ curl http://<node-ip-address>:<node-port>
这里的
<node-ip-address>
和<node-port>
是在kubectl describe svc nginx
中获取的。
结论
本文介绍了如何使用 kubeadm 部署 Kubernetes 集群。我们首先安装了 Docker 和 kubeadm,然后初始化 Kubernetes 集群,并部署了一个简单的应用程序。这对于想要在云环境中部署和管理容器化应用程序的开发人员和系统管理员来说是非常有用的。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/676278e9856ee0c1d403ec2d