什麼是 Kubernetes?
Kubernetes 是一個免費的開源容器管理系統,它為跨主機集群的應用程序容器的部署自動化、擴展和操作提供了一個平台。 借助 Kubernetes,您可以自由使用混合、內部部署和公共雲基礎架構來運行組織的部署任務。
在本教程中,我們將解釋如何在 Ubuntu 系統上安裝 Kubernetes,以及如何在雙節點 Ubuntu 集群上部署 Kubernetes。
本文中提到的命令和過程已在 Ubuntu 18.04 LTS 系統上運行。 由於我們將使用 Ubuntu 命令行終端來運行所有命令,因此您可以通過系統 Dash 或 Ctrl+Alt+T 快捷方式打開它。
Kubernetes 安裝
我們將在本文中形成的雙節點集群將由一個 Master 節點和一個 Slave 節點組成。 這兩個節點都需要安裝 Kubernetes。 因此,請按照下面描述的步驟在兩個 Ubuntu 節點上安裝 Kubernetes。
步驟 1:在兩個節點上安裝 Docker
通過運行以下命令在兩個節點上安裝 Docker 實用程序 sudo 在每個節點的終端中:
$ sudo apt install docker.io
系統將提示您選擇是/否選項以繼續安裝。 請輸入 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,然後按 Enter 繼續。 然後將在您的系統上安裝 Curl 實用程序。
第 4 步:在兩個節點上添加 Xenial Kubernetes 存儲庫
在兩個節點上運行以下命令以添加 Xenial Kubernetes 存儲庫:
$ sudo apt-add-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main"
第 5 步:安裝 Kubeadm
安裝過程的最後一步是通過以下命令在兩個節點上安裝 Kubeadm:
$ sudo apt install kubeadm
系統將提示您選擇是/否選項以繼續安裝。 請輸入 Y,然後按 Enter 繼續。 Kubeadm 然後將安裝在您的系統上。
您可以通過以下命令查看 Kubeadm 的版本號並驗證安裝:
$ kubeadm version
Kubernetes 部署
步驟 1:禁用兩個節點上的交換內存(如果正在運行)
您需要在兩個節點上禁用交換內存,因為 Kubernetes 在使用交換內存的系統上無法正常運行。 在兩個節點上運行以下命令以禁用交換內存
$ sudo swapoff -a
第 2 步:為每個節點指定唯一的主機名
在主節點中運行以下命令,為其提供唯一的主機名:
$ sudo hostnamectl set-hostname master-node
在從節點中運行以下命令,以便為其提供唯一的主機名:
$ hostnamectl set-hostname slave-node
Step3:在master節點上初始化Kubernetes
運行以下命令 sudo 在主節點上:
$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
該過程可能需要一分鐘或更長時間,具體取決於您的互聯網連接。 此命令的輸出非常重要:
請記下輸出中的以下信息:
要開始使用您的集群,您需要以普通用戶身份運行以下命令:
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
您將看到主節點的狀態為“尚未準備好”。 這是因為主節點上還沒有部署 Pod,因此容器網絡接口是空的。
第四步:通過主節點部署一個Pod Network
Pod 網絡是網絡節點之間的通信媒介。 在本教程中,我們將通過以下命令在集群上部署 Flannel pod 網絡:
$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
使用以下命令為了查看網絡的狀態:
$ kubectl get pods --all-namespaces
現在,當您看到節點的狀態時,您將看到主節點已準備就緒:
$ sudo kubectl get nodes
第五步:將slave節點加入網絡,形成集群
在從節點上,運行您在主節點上初始化 Kubernetes 時生成的以下命令:
$ sudo kubeadm join 192.168.100.6:6443 --token 06tl4c.oqn35jzecidg0r0m --discovery-token-ca-cert-hash sha256:c40f5fa0aba6ba311efcdb0e8cb637ae0eb8ce27b7a03d47be6d966142f2204c
現在,當您在主節點上運行以下命令時,它會確認您的系統上正在運行兩個節點,主節點和服務器節點。
$ sudo kubectl get nodes
這表明雙節點集群現在已通過 Kubernetes 容器管理系統啟動並運行。
在本文中,我們已經解釋了在兩個 Ubuntu 節點上安裝 Kubernetes 容器管理系統。 然後我們形成了一個簡單的兩節點集群,並在其上部署了 Kubernetes。 您現在可以部署和使用任何服務,例如 Nginx 服務器或 Apache 容器來利用這個集群網絡。