在本文中,我们将学习如何在 Ubuntu 上安装和配置 Kubernetes。 我们还将部署 NGINX 服务器。
Kubernetes 可以使用其部署工具安装 珠子, 或者 科普, 或者 kubespray. 但是,在本文中,我们将安装它 珠子.
对 Kubernetes 有什么要求?
1.) 兼容的 Linux 主机。 Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及那些没有包管理器的发行版提供通用说明。
2.) 每台机器 2 GB 或更多 RAM(任何更少都会为您的应用程序留下很小的空间)。
3.) 2 个或更多 CPU。
4.) 集群中所有机器之间的完整网络连接(公共或专用网络都可以)。
5.) 每个节点的唯一主机名、MAC 地址和 product_uuid。 请参阅此处了解更多详情。
6.) 某些端口在您的机器上是开放的。 请参阅此处了解更多详情。
7.) 交换禁用。 您必须禁用交换以便 kubelet 正常工作。
来源:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
Kubernetes 使用容器运行时,在本文中,我们将使用 码头工人 如果你的系统上没有安装 docker 可以参考 https://www.linuxfordevices.com/tutorials/ubuntu/install-docker-run-docker-container-ubuntu 快速安装
如何在 Ubuntu 上安装 Kubernetes?
在我们继续安装 Kubernetes 之前,请检查您是否安装了功能齐全的容器运行时。 就像在这篇文章中我们正在使用 码头工人 所以你可以简单地执行:
docker version
更新您的索引 apt 命令 并安装 Kubernetes 安装所需的软件包:
sudo apt update sudo apt install apt-transport-https ca-certificates curl
下一次下载 Google 的签名密钥 Cloud 通过使用 curl 命令:
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
现在通过以下方式将 Kubernetes 存储库添加到 apt 包管理器:
sudo 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
现在更新 apt 索引并通过以下方式安装 kubeadm、kubectl 和 kubelet:
sudo apt update sudo apt install kubelet kubeadm kubectl
现在通过执行来保存它们的版本:
sudo apt-mark hold kubelet kubeadm kubectl
现在通过以下方式验证安装:
kubeadm version
必须在您创建的每个节点上重复这些步骤。
如何配置Kubernetes?
现在我们已经安装了必要的工具,我们现在可以继续配置 Kubernetes。
1.禁用交换并初始化主节点
正如上面的要求中已经提到的,交换必须被禁用 kubelet 正常工作。 通过执行以下命令禁用所有节点上的交换:
sudo swapoff –a
现在通过以下方式初始化主节点:
sudo kubeadm init --apiserver-advertise-address 192.168.0.148 --pod-network-cidr=10.5.0.0/16
代替 192.168.0.148 使用您机器的 IP 地址。
我们已经成功初始化了我们的主节点。

2. 加入工作节点来掌握
我们现在需要运行突出显示的命令,但您还需要将命令保存在红色矩形内,因为稍后将需要它使我们的工作节点加入我们的主节点。
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
现在您可以执行以下命令来查看节点:
sudo kubectl get nodes
你可以看到我们的 主节点 目前是 NotReady。

3. 初始化集群网络
现在通过执行来初始化集群网络:
sudo kubectl apply -f https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml
现在执行 sudo kubetctl get nodes
和 NotReady
状态应该更改为 Ready
,

如果还是 NotReady
给你一点时间,因为它可能需要一些时间才能得到 Ready
.
现在我们将使用我们之前保存的命令使我们的工作节点加入我们的主节点。 它看起来类似于下面的命令但不一样,它必须在您的工作节点服务器上执行。
sudo kubeadm join 192.168.0.148:6443 --token vd392r.oihjkc2yr46qq0x8 --discovery-token-ca-cert-hash sha256:73cbe283eb92e4e8b6d38ec34e6d60d0b40fa792de2567e25fcb0195813b741b

要查看我们的工作节点是否加入了我们的主节点,请执行 kubectl get nodes
这可能需要一点时间。

4. 创建 Nginx 部署
现在让我们通过执行以下命令来创建 NGINX 部署:
sudo kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/nginx-app.yaml
它应该已经成功部署了 nginx 服务器。 现在执行以下命令以获取所有服务的列表:
sudo kubectl get svc
您应该能够在其中找到 NGINX。

默认情况下,Kubernetes 会为 NGINX 服务分配一个 30000+ 范围内的端口。
您可以通过执行类似的测试您的部署 curl 命令如下:
curl master-node:30658

恭喜我们在 Kubernetes 上成功安装并部署了我们的第一个部署。
结论
Kubernetes 是一个很棒的应用程序编排器(基本上是部署和管理应用程序),您只需部署您的应用程序而不必担心扩展或缩减,您可以提供滚动更新、自我修复等等。 希望本文对您有所帮助,祝您学习愉快!