使用 kubeadm 的第一步,是在機(jī)器上手動(dòng)安裝 kubeadm、kubelet 和 kubectl 這三個(gè)二進(jìn)制文件。
當(dāng)你執(zhí)行 kubeadm init 指令后,kubeadm 首先要做的,是一系列的檢查工作,以確定這臺(tái)機(jī)器可以用來部署 Kubernetes。這一步檢查,我們稱為“Preflight Checks”,它可以為你省掉很多后續(xù)的麻煩。
其實(shí),Preflight Checks 包括了很多方面,比如:
- Linux 內(nèi)核的版本必須是否是 3.10 以上?
- Linux Cgroups 模塊是否可用?
- 機(jī)器的 hostname 是否標(biāo)準(zhǔn)?
- 在 Kubernetes 項(xiàng)目里,機(jī)器的名字以及一切存儲(chǔ)在 Etcd 中的 API 對(duì)象,都必須使用標(biāo)準(zhǔn)的 DNS 命名(RFC 1123)。
- 用戶安裝的 kubeadm 和 kubelet 的版本是否匹配?
- 機(jī)器上是不是已經(jīng)安裝了 Kubernetes 的二進(jìn)制文件?
- Kubernetes 的工作端口 10250/10251/10252 端口是不是已經(jīng)被占用?
- ip、mount 等 Linux 指令是否存在?
- Docker 是否已經(jīng)安裝?
- ……
在通過了 Preflight Checks 之后,kubeadm 要為你做的,是生成 Kubernetes 對(duì)外提供服務(wù)所需的各種證書和對(duì)應(yīng)的目錄。
kubeadm 為 Kubernetes 項(xiàng)目生成的證書文件都放在 Master 節(jié)點(diǎn)的 /etc/kubernetes/pki 目錄下。在這個(gè)目錄下,最主要的證書文件是 ca.crt 和對(duì)應(yīng)的私鑰 ca.key。
kubeadm 會(huì)為 Master 組件生成 Pod 配置文件。我已經(jīng)在上一篇文章中和你介紹過 Kubernetes 有三個(gè) Master 組件 kube-apiserver、kube-controller-manager、kube-scheduler,而它們都會(huì)被使用 Pod 的方式部署起來。
kubeadm init 的最后一步,就是安裝默認(rèn)插件。Kubernetes 默認(rèn) kube-proxy 和 DNS 這兩個(gè)插件是必須安裝的。它們分別用來提供整個(gè)集群的服務(wù)發(fā)現(xiàn)和 DNS 功能。其實(shí),這兩個(gè)插件也只是兩個(gè)容器鏡像而已,所以 kubeadm 只要用 Kubernetes 客戶端創(chuàng)建兩個(gè) Pod 就可以了。
kubeadm 至少需要發(fā)起一次“不安全模式”的訪問到 kube-apiserver,從而拿到保存在 ConfigMap 中的 cluster-info(它保存了 APIServer 的授權(quán)信息)。而 bootstrap token,扮演的就是這個(gè)過程中的安全驗(yàn)證的角色。只要有了 cluster-info 里的 kube-apiserver 的地址、端口、證書,kubelet 就可以以“安全模式”連接到 apiserver 上,這樣一個(gè)新的節(jié)點(diǎn)就部署完成了。文章來源:http://www.zghlxwxcb.cn/news/detail-516704.html
此文章為6月Day30學(xué)習(xí)筆記,內(nèi)容來源于極客時(shí)間《深入剖析 Kubernetes》,推薦該課程。文章來源地址http://www.zghlxwxcb.cn/news/detail-516704.html
到了這里,關(guān)于Kubernetes一鍵部署利器:kubeadm的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!