什么是Kubernetes?
Kubernetes是一个免费的开源容器管理系统,为跨主机集群的应用程序容器的部署自动化,扩展和操作提供了一个平台。使用Kubernetes,您可以自由地使用混合,on-premise和公共云基础架构来运行组织的部署任务。
在本教程中,我们将说明如何在Ubuntu系统上安装Kubernetes,以及如何在two-node Ubuntu集群上部署Kubernetes。
本文提到的命令和过程已在Ubuntu 18.04 LTS系统上运行。由于我们将使用Ubuntu命令行终端程序来运行所有命令,因此您可以通过系统Dash或Ctrl + Alt + T快捷方式将其打开。
Kubernetes安装
我们将在本文中形成的two-node群集将由一个主节点和一个从节点组成。这两个节点都需要安装Kubernetes。因此,请按照下面介绍的步骤在两个Ubuntu节点上安装Kubernetes。
步骤1:在两个节点上安装Docker
通过在每个节点的终端中以sudo的身份运行以下命令,在两个节点上安装Docker实用程序:
$ sudo apt install docker.io
系统将提示您输入Y /n选项,以继续进行安装。请输入Y,然后按Enter键继续。然后将Docker安装在您的系统上。您可以通过以下命令验证安装并检查Docker的版本号:
$ docker --version
步骤2:在两个节点上启用Docker
通过在每个节点上运行以下命令,在两个节点上启用Docker实用程序:
$ sudo systemctl enable docker
步骤3:在两个节点上添加Kubernetes签名密钥
运行以下命令以获取Kubernetes签名密钥:
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
如果您的系统上未安装Curl,则可以通过以下命令以root用户身份进行安装:广告广告
$ sudo apt install curl
系统将提示您输入Y /n选项,以继续进行安装。请输入Y,然后按Enter键继续。然后,Curl实用程序将安装在您的系统上。
步骤4:在两个节点上添加Xenial Kubernetes存储库
在两个节点上运行以下命令以添加Xenial Kubernetes存储库:
$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
步骤5:安装Kubeadm
安装过程的最后一步是通过以下命令在两个节点上安装Kubeadm:
$ sudo apt install kubeadm
系统将提示您输入Y /n选项,以继续进行安装。请输入Y,然后按Enter键继续。然后,将在您的系统上安装Kubeadm。
您可以检查Kubeadm的版本号,也可以通过以下命令验证安装:
$ kubeadm version
Kubernetes部署
步骤1:在两个节点上禁用交换内存(如果正在运行)
您需要在两个节点上都禁用交换内存,因为Kubernetes在使用交换内存的系统上无法正常运行。在两个节点上运行以下命令以禁用交换内存
$ sudo swapoff -a
步骤2:为每个节点赋予唯一的主机名
在主节点中运行以下命令以为其赋予唯一的主机名:
$ sudo hostnamectl set-hostname master-node
在从属节点中运行以下命令以为其赋予唯一的主机名:
$ hostnamectl set-hostname slave-node
第三步:在主节点上初始化Kubernetes
在主节点上以sudo身份运行以下命令:
$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
该过程可能需要一分钟或更长时间,具体取决于您的Internet连接。此命令的输出非常重要:
请从输出中记下以下信息:
要开始使用群集,您需要以普通用户身份运行以下命令:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
现在,您可以通过在每个节点上运行以下命令来加入任意数量的计算机
作为根:
kubeadm join 192.168.100.6:6443 --token 06tl4c.oqn35jzecidg0r0m --discovery-token-ca-cert-hash sha256:c40f5fa0aba6ba311efcdb0e8cb637ae0eb8ce27b7a03d47be6d966142f2204c
现在运行输出中建议的命令以开始使用集群:
您可以通过运行以下命令来检查主节点的状态:
$ kubectl get nodes
您将看到主节点的状态为“not ready”。这是因为尚未在主节点上部署任何Pod,因此容器网络接口为空。
步骤4:通过主节点部署Pod网络
Pod网络是网络节点之间的通信介质。在本教程中,我们将通过以下命令在集群上部署Flannel Pod网络:
$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
使用以下命令以查看网络的状态:
$ kubectl get pods --all-namespaces
现在,当您看到节点的状态时,您将看到master-node已准备就绪:
$ sudo kubectl get nodes
步骤5:将从节点添加到网络以形成集群
在从节点上,运行在master-node上初始化Kubernetes时生成的以下命令:
$ sudo kubeadm join 192.168.100.6:6443 --token 06tl4c.oqn35jzecidg0r0m --discovery-token-ca-cert-hash sha256:c40f5fa0aba6ba311efcdb0e8cb637ae0eb8ce27b7a03d47be6d966142f2204c
现在,当您在主节点上运行以下命令时,它将确认系统上正在运行两个节点,即主节点和服务器节点。
$ sudo kubectl get nodes
这表明two-node集群现在已通过Kubernetes容器管理系统启动并运行。
在本文中,我们介绍了在两个Ubuntu节点上安装Kubernetes容器管理系统的过程。然后,我们形成了一个简单的two-node集群,并在其上部署了Kubernetes。现在,您可以部署和使用任何服务(例如Nginx服务器或Apache容器)来利用此群集网络。