如何在Ubuntu 18.04 LTS上安装Kubernetes
Kubernetes也称为k8,是一个免费的开源工具,用于管理Docker容器。
这是一个容器编排平台,专门用于自动执行容器化应用程序的部署,扩展和管理。
在本教程中,您将学习如何在Ubuntu 18.04 LTS上安装和配置Kubernetes。
前提条件
在开始之前,我们将有一个包含3个Ubuntu 18.04节点的测试实验室,如下所示
- Kubernetes主节点IP地址:172.31.4.36主机名:k8-master
- Kubernetes从站节点1 IP地址:172.31.4.170主机名:k8-slave
- Kubernetes从站节点2 IP地址:172.31.10.30主机名:k8-slave2
此外,请确保您的系统具有以下最低要求。
- 2个CPU
- 4 GB内存
- 8 GB可用硬盘空间
现在,让我们开始吧。
步骤1.设置主机名和更新主机文件
首先,您将通过SSH登录主节点并设置主机名,如下所示
$sudo hostnamectl set-hostname "k8-master"
在从属节点上,运行以下命令
$sudo hostnamectl set-hostname k8-slave $sudo hostnamectl set-hostname k8-slave2
使用您喜欢的文本编辑器,在/etc/hosts
文件中对3个节点中的每一个分别进行以下修改,即k8-master,k8-slave和k9-slave2。
172.31.4.36 k8s-master 172.31.4.170 k8-slave 172.31.10.30 k8-slave2
步骤2.在主节点和从节点上安装Docker
要在主节点上安装docker,首先,使用以下命令更新和升级系统
$sudo apt-get update && sudo apt-get upgrade
接下来,使用以下命令在主节点和从节点上安装Docker
$sudo apt-get install docker.io -y
成功安装Docker后,请使用以下命令在主节点和从节点上启动并启用Docker服务。
$sudo systemctl start docker $sudo systemctl enable docker
要验证Docker是否正在运行,请在主节点和从节点上发出命令
$sudo systemctl status docker
要查看您刚刚安装的Docker版本,请运行
$docker --version
步骤3.在主节点和从节点上配置Kubernetes存储库
在进行下一步之前,我们需要安装一些有用的软件包。
在所有节点上运行以下命令
$sudo apt-get install apt-transport-https curl -y
接下来,通过执行以下命令来添加Kubernetes软件包存储库密钥
$curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
接下来,使用以下命令添加Kubernetes存储库。
$sudo apt-add-repository "deb https://apt.kubernetes.io/kubernetes-xenial main"
注意:
没有适用于Ubuntu 18.04 LTS的Kubernetes软件包存储库。
但是,我们已经使用了Xenial Kubernetes软件包存储库。
步骤4.禁用交换并安装kubeadm
我们将安装kubeadm软件包,以允许我们在集群上部署多个节点。
但是在我们这样做之前,Kubernetes官方建议禁用OS交换功能。
为此,请运行以下命令。
$sudo swapoff -a
您现在可以按照以下步骤安装kubeadm软件包。
$sudo apt-get install kubeadm -y
成功安装kubeadm软件包后,请使用以下命令验证其版本
$kubeadm version
步骤5.使用Kubeadm启动Kubernetes集群
在主节点上,使用kubeadm登录并初始化kubernetes,如图所示。
$sudo kubeadm init --pod-network-cidr=172.31.4.0/20
上面的输出确认我们已成功启动Kubernetes Master节点。
要启动集群,请执行绿色突出显示框内的命令,一个接一个
$mkdir -p $HOME/.kube $sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $sudo chown $(id -u):$(id -g) $HOME/.kube/config
现在,我们将通过运行以下命令来验证主节点的状态。
$kubectl get nodes
此时,您将收到提示,提示主节点尚未准备就绪,因为我们尚未部署任何Pod。
在下一步中,我们将部署一个Pod网络,该网络是我们的群集节点将能够彼此通信的网络。
为此,我们将Flannel部署为我们的pod网络。
法兰绒将在群集节点之间提供覆盖网络
步骤6.将Flannel部署为Pod网络
要部署Pod网络,请在"主"节点中运行以下命令
$sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
至此,我们现在可以使用" kubectl"命令验证主节点的状态。
$sudo kubectl get nodes
如上所示,主节点状态已更改为"就绪"。
此外,验证所示的pod名称空间。
$sudo kubectl get pods --all-namespaces
上面的输出显示所有pod命名空间都处于运行状态。
最后一步是将从属节点加入群集。
步骤7.将Slave节点添加到集群
在此步骤中,我们将登录到两个从节点(k8-slave和k8-slave2)并执行以下命令,该命令在步骤5中以红色突出显示。
$kubeadm join 172.31.4.36:6443 --token w8kbni.wiyevyov0yxwwtdj --discovery-token-ca-cert-hash sha256:29adc042c538f59f0c7339ebad2126d5836de06ffe0ae22c54ce0aef2eb4cb76
现在前往主从节点,并使用" kubectl"命令检查主节点和从节点的状态
$kubectl get nodes
上面的输出确认我们已成功将两个从节点添加到集群中,并且它们的状态以及主节点已准备就绪!