如何在 Ubuntu 20.04 上安裝 Kubernetes – Kubeadm 和 Minikube
運(yùn)行小型應(yīng)用程序并不難,但如果你想擴(kuò)展它們?cè)趺崔k?當(dāng)您擁有成百上千臺(tái)服務(wù)器時(shí),擴(kuò)展就不是那么容易了。應(yīng)該有一個(gè)自動(dòng)化工具來(lái)全權(quán)負(fù)責(zé)在特定機(jī)器上為我們的應(yīng)用程序分配資源,不僅如此,還需要持續(xù)監(jiān)控和彈性。
在容器上部署服務(wù)的主要原因之一是它們靈活、輕量級(jí)并且在部署在數(shù)百臺(tái)機(jī)器上時(shí)易于擴(kuò)展。但是,誰(shuí)來(lái)管理所有這些容器?這就是 Kubernetes 發(fā)揮作用的地方。
什么是 Kubernetes?
Kubernetes(也稱為“K8s”)是 Google 的一個(gè)開源項(xiàng)目,用于通過(guò)提供擴(kuò)展、部署和維護(hù)等服務(wù)來(lái)管理集群上的容器化應(yīng)用程序。
Kubernetes 目前是市場(chǎng)領(lǐng)導(dǎo)者,在大多數(shù)場(chǎng)景中擊敗了 Docker Swarm 和 Apache Mesos 等競(jìng)爭(zhēng)對(duì)手。然而,Kubernetes 的一大缺點(diǎn)是設(shè)置困難。一些云供應(yīng)商確實(shí)提供了預(yù)制集群供您使用,但它們是付費(fèi)的。當(dāng)您只想免費(fèi)學(xué)習(xí) Kubernetes 時(shí)該怎么辦?
讓我們看看如何在 Ubuntu 20.04 上運(yùn)行 Kubernetes 集群。
Kubernetes 安裝——使用 kubeadm
首先,有兩個(gè)虛擬機(jī)的設(shè)置。我們將其中一個(gè)用作我們的主節(jié)點(diǎn),另一個(gè)用作工作節(jié)點(diǎn)。
安裝 Docker
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install docker.io
啟動(dòng)Docker
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl start docker
查看狀態(tài)
linuxmi@linuxmi:~/www.linuxmi.com$ systemctl status docker.service
設(shè)置開機(jī)啟動(dòng)
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable docker
查看 Docker 版本
linuxmi@linuxmi:~/www.linuxmi.com$ docker version
禁用交換內(nèi)存
暫時(shí)禁止:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo swapoff -a
永久禁止:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo nano /etc/fstab
在此文件中,注釋掉該 /swapfile 行。
設(shè)置主機(jī)名
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 設(shè)置為保留。
kubeadm 設(shè)置為保留。
kubectl 設(shè)置為保留。
初始化 Kubernetes 主服務(wù)器
在主節(jié)點(diǎn)上運(yùn)行這些:
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 網(wǎng)絡(luò)
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 集群
從工作節(jié)點(diǎn)運(yùn)行這些:
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(本地)
對(duì)于這個(gè)演示,我們將使用一個(gè)名為minikube的應(yīng)用程序。使用 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
這將在本地啟動(dòng)一個(gè) Kubernetes 集群。要停止集群,您可以:
要訪問(wèn)本地 Kubernetes 的儀表板:
minikube dashboard
OK,就這樣。