如何在 Ubuntu 20.04 上安裝 Kubernetes – Kubeadm 和 Minikube
運行小型應用程序并不難,但如果你想擴展它們怎么辦?當您擁有成百上千臺服務器時,擴展就不是那么容易了。應該有一個自動化工具來全權負責在特定機器上為我們的應用程序分配資源,不僅如此,還需要持續監控和彈性。
在容器上部署服務的主要原因之一是它們靈活、輕量級并且在部署在數百臺機器上時易于擴展。但是,誰來管理所有這些容器?這就是 Kubernetes 發揮作用的地方。
什么是 Kubernetes?
Kubernetes(也稱為“K8s”)是 Google 的一個開源項目,用于通過提供擴展、部署和維護等服務來管理集群上的容器化應用程序。
Kubernetes 目前是市場領導者,在大多數場景中擊敗了 Docker Swarm 和 Apache Mesos 等競爭對手。然而,Kubernetes 的一大缺點是設置困難。一些云供應商確實提供了預制集群供您使用,但它們是付費的。當您只想免費學習 Kubernetes 時該怎么辦?
讓我們看看如何在 Ubuntu 20.04 上運行 Kubernetes 集群。
Kubernetes 安裝——使用 kubeadm
首先,有兩個虛擬機的設置。我們將其中一個用作我們的主節點,另一個用作工作節點。
安裝 Docker
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install docker.io
啟動Docker
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl start docker
查看狀態
linuxmi@linuxmi:~/www.linuxmi.com$ systemctl status docker.service
設置開機啟動
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable docker
查看 Docker 版本
linuxmi@linuxmi:~/www.linuxmi.com$ docker version
禁用交換內存
暫時禁止:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo swapoff -a
永久禁止:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo nano /etc/fstab
在此文件中,注釋掉該 /swapfile 行。
設置主機名
linuxmi@linuxmi:~/www.linuxmi.com$ sudo hostnamectl set-hostname kubernetes-master
linuxmi@linuxmi:~/www.linuxmi.com$ sudo hostnamectl set-hostname kubernetes-worker
安裝 Kubernetes
sudo apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
linuxmi@linuxmi:~/www.linuxmi.com$ curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
OK
linuxmi@linuxmi:~/www.linuxmi.com$ sudo tee /etc/apt/sources.list.d/kubernetes.list <<EOF
> deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
> EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get update
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get install -y kubelet kubeadm kubectl
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-mark hold kubelet kubeadm kubectl
kubelet 設置為保留。
kubeadm 設置為保留。
kubectl 設置為保留。
初始化 Kubernetes 主服務器
在主節點上運行這些:
kubernetes-master:~$ sudo kubeadm init
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 網絡
kubernetes-master:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubernetes-master:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml
kubernetes-master:~$ kubectl get pods --all-namespaces
加入 Kubernetes 集群
從工作節點運行這些:
kubernetes-worker:~$ sudo kubeadm join 192.168.1.220:6443 --token 1exb8s.2t4k3b5syfc3jfmo --discovery-token-ca-cert-hash sha256:72ad481cee4918cf2314738419356c9a402fb609263adad48c13797d0cba2341
kubernetes-master:~$ kubectl get nodes
Kubernetes 安裝 – 使用 minikube(本地)
對于這個演示,我們將使用一個名為minikube的應用程序。使用 Ctrl + Alt + T 打開終端并輸入以下命令:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start
這將在本地啟動一個 Kubernetes 集群。要停止集群,您可以:
要訪問本地 Kubernetes 的儀表板:
minikube dashboard
OK,就這樣。