最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

軟件測試 | K8S安裝與配置

2023-05-31 10:03 作者:測吧測試開發(fā)  | 我要投稿

K8S 的安裝與配置

K8S 在當年因為其復(fù)雜、艱難的安裝方式被稱為是新人殺手,勸退圈的 NO.1。大量想要學(xué)習(xí) K8S 的人 被擋在了安裝手冊這座大山前。不過好在經(jīng)過多年的發(fā)展,好幾款快速安裝 K8S 的工具都已經(jīng)成熟。 今天介紹的就是 kubeadm 這款 K8S 官方安裝工具。

準備工作

為了演示安裝過程,選擇 Centos 8 來作為宿主機,為了安裝必要的工具, 需要添加阿里源。

K8S 并不支持交換分區(qū), 所以要關(guān)閉它。

為了讓 Docker 網(wǎng)絡(luò)生效,需要讓宿主機擁有類似路由器一樣的網(wǎng)絡(luò)轉(zhuǎn)發(fā)功能。 這樣在使用端口映射的 方式啟動容器的時候,才能使用宿主機作為跳板間接的與容器網(wǎng)絡(luò)進行通信。 靠的就是將發(fā)往宿主機特 定的網(wǎng)絡(luò)請求轉(zhuǎn)發(fā)給容器網(wǎng)絡(luò)實現(xiàn)的,具體的原理這里不深入討論了。 但是為了讓宿主機有這樣的能力 需要打開兩個內(nèi)核參數(shù)。

安裝DOCKER

安裝 KUBECTL、KUBELET、KUBEADM

安裝前先介紹一下這三個工具。

kubeadm:之前說過這個是 k8s 集群的安裝工具

kubectl:k8s 的命令行工具,后續(xù)都使用使用這個命令與 k8s 通信

kubelet:可以理解為 k8s 在每個節(jié)點上啟動的 agent,它負責維護當前節(jié)點的狀態(tài)和節(jié)點上啟動的 所有容器的維護工作。 由于它不能夠被容器化部署,所以必須手動下載。PS:其他 k8s 的服務(wù)可 以容器化部署所以不需要手動下載。

首先添加阿里源

安裝

這個命令需要注意以下兩點:

因為谷歌的鏡像在國內(nèi)是無法下載的,所以需要通過--image-repository 參數(shù)來指定從阿里云上下載 所需要的鏡像 命令默認會安裝最新的 k8s 版本, 如果想要指定版本可以通過--kubernetes-version 參數(shù)來完成這 個目的 當命令運行成功后,會打印出如下的信息:

如果看到上面的信息那證明集群已經(jīng)安裝成功。并且上面的信息非常有用,需要按信息內(nèi)容嚴格執(zhí)行才 能順利使用集群。這里針對這段信息需要注意的有如下 2 點:

  • 需要按照信息所提示的將 kubeconfig 文件復(fù)制到 $HOME/.kube/config 路徑下并賦予相應(yīng)的權(quán)限。 kubectl 命令會在此目錄下尋找 kubeconfig 文件并與 K8S 的 apiserver 進行通信。 kubeconfig 文 件中包含 K8S apiserver 的地址和數(shù)字證書等信息,是大多數(shù)外部程序跟 K8S 通信的必需品。 如 果你希望通過 K8S 開源出來的客戶端與 K8S 進行通信,那不管使用哪種語言的客戶端第一步都要 指定 kubeconfig 的路徑對客戶端進行初始化。

  • 目前搭建的 K8S 集群是單節(jié)點集群,如果希望將其他節(jié)點加入到集群中來,需要按上述信息提示 的在對應(yīng)節(jié)點使用 kubeadm join 命令。 所以要保存好上述信息的這段命令。

截止到這里還無法使用 K8S 集群,當使用 kubectl get pods -n kube-system 這個命令來查看會 發(fā)現(xiàn) K8S 的 DNS 仍然不是運行狀態(tài)。

這是因為沒有安裝 K8S 網(wǎng)絡(luò)的 CNI 插件, K8S 支持很多種插件式的設(shè)計, 其網(wǎng)絡(luò)也是其中之一。 它不會預(yù)先幫助用戶安裝網(wǎng)絡(luò)組件,而是把這個權(quán)力留給用戶。 目前主流的網(wǎng)絡(luò)組件有 flannel,calico 和 weave。本次使用 calico 來進行安裝。

如果安裝成功,就可以用 kubectl get pods -n kube-system 命令看到 dns 和 calico 相關(guān)的 POD 都已經(jīng)是運行狀態(tài)了。

當然現(xiàn)在集群仍然不是可用狀態(tài), 如果這個時候向 K8S 提交一個 POD 會發(fā)現(xiàn) POD 會一直處于 pending 狀態(tài), 這是因為使用 kubeadm 安裝的 K8S 集群它都會默認為主節(jié)點打上一個污點(taint)。 污點是 K8S 中的一個調(diào)度策略。 可以把它當做一個標識, 凡是被打上污點的節(jié)點默認情況下是不可以使用的, 只有在創(chuàng)建 POD 的時候顯示的聲明可以容忍(tolerate)這個污點才可以被調(diào)度到這個節(jié)點 上。 kubeadm 之所以給 Master 節(jié)點打上一個污點是從保護主節(jié)點出發(fā)考慮的。試想一下主節(jié)點上運行 的都是 K8S 的關(guān)鍵服務(wù),一但這些服務(wù)出現(xiàn)問題那么會導(dǎo)致整個 K8S 集群癱瘓,所以如果準許普通的 POD 也調(diào)度到 Master 節(jié)點的話,那么大量的任務(wù)可能會存在壓垮主節(jié)點的風(fēng)險。 所以為了保護這些服 務(wù),kubeadm 會默認給 Master 節(jié)點打上污點以保證普通的 POD 不會調(diào)度到 Master 節(jié)點上。 那么為 了在本次演示中能夠使用主節(jié)點, 可以采取手動的刪除這個污點。

注意刪除污點的命令格式為: kubectl taint nodes 節(jié)點名稱?node-role.kubernetes.io?master:NoSchedule- 所以才需要先使用 kubectl get nodes 命令去獲取 Master 節(jié)點的名稱。 至此 K8S 集群就已經(jīng)搭建完畢了。


軟件測試 | K8S安裝與配置的評論 (共 條)

分享到微博請遵守國家法律
宁都县| 亚东县| 岳阳县| 呼玛县| 巴林左旗| 靖江市| 敦化市| 舟山市| 凤凰县| 长海县| 天峻县| 文昌市| 通辽市| 汽车| 宜兰县| 清水县| 梓潼县| 文成县| 桃园市| 延川县| 台东市| 广水市| 东安县| 孟州市| 监利县| 织金县| 思茅市| 曲松县| 德庆县| 策勒县| 乐平市| 临沂市| 吉木萨尔县| 呼图壁县| 贵定县| 利川市| 长阳| 名山县| 马关县| 门头沟区| 蒙自县|