新聞中心
如何在Ubuntu Server安裝沒(méi)有docker的Kubernetes?
譯文
作者:布加迪編譯 2020-12-15 08:00:00
開(kāi)發(fā)
前端
云計(jì)算 Docker在Kubernetes中已被棄用,您需要知道怎樣才能部署這個(gè)容器編排工具。本文作者介紹了一條可行的道路。

【51CTO.com快譯】Kubernetes現(xiàn)棄用對(duì)Docker的支持。沒(méi)錯(cuò),您在學(xué)習(xí)這個(gè)容器編排工具上所做的所有艱苦工作都將發(fā)生變化。您使用Kubernetes的方式會(huì)不一樣。
我說(shuō)的是這個(gè)容器管理工具的安裝。您當(dāng)然不能像以前那樣部署Kubernetes:將Docker安裝為運(yùn)行時(shí)環(huán)境。有鑒于此,您該怎么辦?我來(lái)演示一番。
總之,我們將在Ubuntu Server 20.04上安裝Kubernetes,沒(méi)有Docker。
您需要什么?
- 具有sudo權(quán)限的用戶
- Ubuntu Server 20.04的一個(gè)實(shí)例(將充當(dāng)控制器――您需要其他實(shí)例充當(dāng)節(jié)點(diǎn),但是我將僅在控制器上進(jìn)行演示,因?yàn)樗杏?jì)算機(jī)上的安裝都一樣)。
如何安裝containerd運(yùn)行時(shí)環(huán)境?
我們要做的第一件事是安裝containerd運(yùn)行時(shí)環(huán)境,它將代替Docker。登錄到您的Ubuntu Server實(shí)例,并確保使用以下命令更新apt:
- sudo apt-get update
這步完成后,您應(yīng)該使用以下命令運(yùn)行升級(jí):
- sudo apt-get upgrade -y
如果內(nèi)核升級(jí)了,需要重新啟動(dòng)服務(wù)器(除非您已安裝并運(yùn)行Live Patch)。
使用以下命令安裝containerd:
- sudo apt-get install containerd -y
使用以下命令配置containerd并啟動(dòng)服務(wù):
- sudo mkdir -p /etc/containerd
- sudo su -
- containerd config default /etc/containerd/config.toml
如何安裝Kubernetes?
接下來(lái)我們將安裝Kubernetes。首先您需要使用以下命令添加存儲(chǔ)庫(kù)的GPG密鑰:
- curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
使用以下命令添加Kubernetes存儲(chǔ)庫(kù):
- sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
現(xiàn)在您可以使用以下命令安裝所有必需的Kubernetes組件:
- sudo apt-get install kubeadm kubelet kubectl -y
如何解決containerd帶來(lái)的幾個(gè)問(wèn)題?
這方面情況有些棘手。雖然Kubernetes開(kāi)發(fā)人員會(huì)告訴您應(yīng)該很順利,事實(shí)并非如此,至少現(xiàn)在還沒(méi)有。有了Docker,許多底層工作無(wú)需操心。您遷移到containerd后,必須進(jìn)行一番手動(dòng)配置更改。
第一處更改是為/etc/sysctl.conf添加一行。使用以下命令打開(kāi)文件:
- sudo nano /etc/sysctl.conf
該文件打開(kāi)后,在底部添加以下內(nèi)容:
- net.bridge.bridge-nf-call-iptables = 1
保存并關(guān)閉文件。
下一步,運(yùn)行以下命令:
- sudo -s
- sudo echo '1' > /proc/sys/net/ipv4/ip_forward
- exit
用以下命令重新裝入配置:
- sudo sysctl --system
您還需要用以下命令裝入幾個(gè)必要的模塊:
- sudo modprobe overlay
- sudo modprobe br_netfilter
一旦您完成了上述,應(yīng)該可以最終初始化Kubernetes了。
如何完成安裝?
您需要映射/etc/hosts中的所有節(jié)點(diǎn)。確保映射采用這種形式:
IP Address hostname
下一步是用以下命令設(shè)置控制器的主機(jī)名(確保它與您在/etc/hosts中使用的主機(jī)名相匹配):
- sudo hostnamectl set-hostname HOSTNAME
其中HOSTNAME是您想使用的主機(jī)名。
使用以下命令打開(kāi)fstab文件來(lái)編輯,禁用置換:
- sudo nano /etc/fstab
在該文件中,注釋掉以/swap.img開(kāi)頭的條目(即在某一行的開(kāi)頭添加#字符),這一行現(xiàn)在將以#/swap.img開(kāi)頭。
保存并關(guān)閉文件。
用以下命令禁用置換:
- sudo swapoff -a
用以下命令拉取必要的容器:
- sudo kubeadm config images pull
在控制器上,用以下命令初始化Kubernetes:
- sudo kubeadm init --pod-network-cidr=IPADDRESS/24
其中IPADDRESS是控制器的IP地址。
您最終將回到在節(jié)點(diǎn)上運(yùn)行的該命令,以便它們可以連接到集群??截愒撁?。
在可以將節(jié)點(diǎn)添加到集群之前,您要處理好集群上的另外幾點(diǎn)。
在集群上,用以下命令創(chuàng)建集群目錄:
- mkdir -p $HOME/.kube
用以下命令將配置文件拷貝到該目錄中:
- sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
用以下命令為配置文件賦予適當(dāng)?shù)臋?quán)限:
- sudo chown $(id -u):$(id -g) $HOME/.kube/config
用以下命令將pod網(wǎng)絡(luò)(這里我們將使用weave-net)部署到集群上:
- kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
現(xiàn)在您可以在每一個(gè)節(jié)點(diǎn)上運(yùn)行join命令,以完成集群。
這個(gè)過(guò)程不如過(guò)去那么簡(jiǎn)單。但愿在將來(lái),Kubernetes集群部署會(huì)與過(guò)去牽涉Docker時(shí)一樣容易。在此之前,如果您選擇將這種容器編排工具托管在自己的硬件上,就要完成上述步驟。
網(wǎng)頁(yè)題目:如何在UbuntuServer安裝沒(méi)有Docker的Kubernetes?
轉(zhuǎn)載來(lái)于:http://fisionsoft.com.cn/article/cdishei.html


咨詢
建站咨詢
