当前位置: 首页>>技术教程>>正文


如何在Ubuntu 18.04 Bionic Beaver Linux上安装Kubernetes

, ,

目的

目的是在Ubuntu 18.04 Bionic Beaver Linux上安装Kubernetes

操作系统和软件版本

  • 操作系统:-Ubuntu 18.04 Bionic Beaver Linux
  • 软件:-Kubernetes v1.10.0

要求

以root或通过特权访问Ubuntu系统sudo命令是必需的。

困难

介质

情境

在本指南中,我们将配置由两个节点组成的最简单的Kubernetes集群。具有主机名的第一个节点kubernetes-master将充当主节点。

具有主机名的第二个节点kubernetes-master同样运行Ubuntu 18.04的系统将成为一个从属节点,只需加入Kuberneets集群即可。一旦启动Kubernetes集群并作为概念验证运行,我们将部署Nginx服务器容器。

约定

  • -要求linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo命令
  • $-要求linux命令以普通非特权用户身份执行

使用说明

安装Docker

第一步是在每个节点上安装docker。这包括主节点和从节点。执行以下linux命令安装码头工人在您所有的Kubernetes节点上:


$ sudo apt install docker.io

一旦安装了Docker,请确保已启用它以在重启后启动:


$ sudo systemctl enable docker

安装Kubernetes

在此阶段,我们准备安装Kubernetes。我们再次需要在所有节点上安装Kubernetes。在所有节点(主节点和从节点)上执行以下命令以安装Kubernetes:

首先添加Kubernetes签名密钥:


$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add

接下来,添加Kubernetes存储库并安装Kubernetes:

注意:在撰写本文时,仅提供Ubuntu 16.04 Xenial Kubernetes存储库。替换以下xenialbionicUbuntu 18.04 Kubernetes存储库可用时,将使用代号。


$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
$ sudo apt install kubeadm 

如果您的系统使用交换内存,Kubernetes将拒绝运行,因此我们需要在所有节点(主&从)上禁用交换内存:


$ sudo swapoff -a



接下来,确保所有节点都具有唯一的主机名。因此,如果您尚未这样做设置主机名到您的节点。在我们的场景中,我们将使用kubernetes-master主机名:


$ sudo hostnamectl set-hostname kubernetes-master

和带有kubernetes-master主机名:


$ sudo hostnamectl set-hostname kubernetes-slave

最后,值得一提的是,您所有的节点都应有一个准确的时间和日期,否则您将遇到使用无效TLS证书的麻烦。

初始化Kubernetes主服务器

现在我们准备初始化Kubernetes主节点。为此,请执行以下操作linux命令在您的主节点上:


kubernetes-master:~$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Kubernetes on Ubuntu 18.04

现在已在Ubuntu 18.04主节点上初始化Kubernetes。

记下整个kubeadm join该命令位于上述Kubernetes主节点初始化输出的底部,因为稍后将Kubernetes集群与从属节点一起加入时将使用此命令。

接下来,由于Kubernetes主节点初始化输出建议以普通用户身份执行以下波纹管命令以开始使用Kubernetes集群:


kubernetes-master:~$ mkdir -p $HOME/.kube
kubernetes-master:~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
kubernetes-master:~$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

部署Pod网络

下一步是部署Pod网络。 Pod网络用于Kubernetes集群中节点之间的通信。为此,我们将使用Flannel Pod网络:


kubernetes-master:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

根据您的环境,可能需要几秒钟或一分钟才能启动整个法兰绒网络。使用kubectl命令以确认一切就绪并准备就绪:


kubernetes-master:~$ kubectl get pods --all-namespaces
Kubernetes Flannel pod network deployed on Ubuntu 18.04

部署了法兰绒Pod网络。如果成功,您应该会看到与上面类似的输出。

加入Kubernetes集群

现在一切都准备就绪,我们的节点即可加入Kubernetes集群。使用kubeadm join从Kubernetes主节点初始化输出中先前检索到的命令加入您的Kubernetes集群:


kubernetes-slave:~$ sudo kubeadm join 10.1.1.9:6443 --token qdjnpd.5glu39uxr92xarsj --discovery-token-ca-cert-hash sha256:ed0684156c718caf425ceae6c85a56c05f7b49037cde3a2f1fd57430a4f58f89
Ubuntu 18.04 Node joins Kubernetes cluster

从节点已成功加入我们的Kubernetes集群。

在您的Kubernetes主节点上,确认该节点kubernetes-slave现在是我们的Kubernetes集群的一部分:


kubernetes-master:~$ kubectl get nodes
List of all joined Kubernetes nodes

所有加入的Kubernetes节点的列表。


在Kubernetes集群上部署服务

作为概念验证,我们现在将Nginx服务器部署到新的Kubernetes集群中。现在,在主节点上运行以下两个命令:


kubernetes-master:~$ kubectl run --image=nginx nginx-server --port=80 --env="DOMAIN=cluster"
kubernetes-master:~$ kubectl expose deployment nginx-server --port=80 --name=nginx-http

现在,您应该看到在您的从节点上部署了一个新的nginx docker容器:


kubernetes-slave:~$ sudo docker ps
Deploy service on Kubernetes Cluster on Ubuntu 18.04

新的Docker Nginx容器已启动并在Kubernetes从节点上运行。

要确认我们新的Nginx服务已启动并正在运行,请列出您的主节点上的所有可用服务,并使用curl命令在您的CLUSTER IP上执行HTTP请求:


kubernetes-master:~$ kubectl get svc
kubernetes-master:~$ curl -I 10.101.230.239
Nginx Service on Ubuntu 18.04 Kubernetes cluster

Ubuntu 18.04 Kubernetes集群上的Nginx服务

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8383.html,未经允许,请勿转载。