亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【讀書筆記】10 Kubernetes一鍵部署利器 kubeadm

發布時間:2020-08-22 08:30:52 來源:網絡 閱讀:471 作者:筑夢攻城獅 欄目:云計算

《深入剖析Kubernetes - 09? 從容器到容器云 談談Kubernetes的本質》

kubeadm 簡化部署操作,僅需要以下2個操作即可創建一個k8s 集群

#?創建一個?Master?節點
$?kubeadm?init

#?將一個?Node?節點加入到當前集群中
$?kubeadm?join


k8s 每個組件都是一個獨立的二進制文件,部署過程無非就是將二進制跟配置文件分布到指定機器,并通過腳本啟停進程,這些工作在物理機時代完全可以通過saltstack 或者ansible 來完成,但后續運維成本會比較高,得自己實現進程監控,健康檢查等等。

既然k8s 做服務編排,自然可以解決服務發現,服務注冊,健康檢查等功能。

具體方法是,master機器上 先手動在機器上安裝kubeadm、kubelet、kubectl 這3個二進制文件;

而node 節點上面則只需要安裝kubelet / kubeadm 然后通過kubeadm join 添加到集群內部即可

一、kubeadm init 工作流程

(1)檢查機器環境是否滿足

1、linux內核是否3.10 以上

2、cgroups 模塊是否啟用

3、hostname 是否符合標準(遵循DNS命名規則)

4、kubeadm 和 kubelet 版本是否匹配

5、是否已安裝kubernetes 二進制文件

6、10250/10251/10252 等端口是否被占用

7、ip、mount 等指令是否存在

8、docker 是否安裝

... ...


(2)生成kubernetes 對外提供服務所需證書和對應目錄

默認放在/etc/kubernetes/pki 目錄下

主要有ca.crt / ca.key

apiserver-kubelet-client.crt / apiserver-kubelet-client.key


(3)為master組件生成Pod 配置文件

即api-server、scheduler、controller-manager 以static-pod 方式部署

static-pod 允許將yaml 文件放在指定目錄,在kubelet 啟動時指定該目錄,此時它會自動檢查該目錄并加載所有pod yaml文件并啟動相應pod


為什么要用static pod?

剛創建集群的時候,上面并沒有api-server 、kubectl ,無法創建相關的pod,故只能通過這種方式啟動pod。

master 組件yaml文件生成目錄為:/etc/kubernetes/manifests

ls?/etc/kubernetes/manifests/
etcd.yaml??kube-apiserver.yaml??kube-controller-manager.yaml??kube-scheduler.yaml


這里有個api-server.yaml 的例子:

apiVersion:?v1
kind:?Pod
metadata:
??annotations:
????scheduler.alpha.kubernetes.io/critical-pod:?""
??creationTimestamp:?null
??labels:
????component:?kube-apiserver
????tier:?control-plane
??name:?kube-apiserver
??namespace:?kube-system
spec:
??containers:
??-?command:
????-?kube-apiserver
????-?--authorization-mode=Node,RBAC
????-?--runtime-config=api/all=true
????-?--advertise-address=10.168.0.2
????...
????-?--tls-cert-file=/etc/kubernetes/pki/apiserver.crt
????-?--tls-private-key-file=/etc/kubernetes/pki/apiserver.key
????image:?k8s.gcr.io/kube-apiserver-amd64:v1.11.1
????imagePullPolicy:?IfNotPresent
????livenessProbe:
??????...
????name:?kube-apiserver
????resources:
??????requests:
????????cpu:?250m
????volumeMounts:
????-?mountPath:?/usr/share/ca-certificates
??????name:?usr-share-ca-certificates
??????readOnly:?true
????...
??hostNetwork:?true
??priorityClassName:?system-cluster-critical
??volumes:
??-?hostPath:
??????path:?/etc/ca-certificates
??????type:?DirectoryOrCreate
????name:?etc-ca-certificates
??...


通過這么一個yaml配置文件,告訴k8s 創建相應的api object , 這個api對象定義參考上述yaml 文件


(4)為該集群生成bootstrap token

供worknode 節點 通過kubeadm join 加入到該集群


(5)安裝默認插件

例如kube-proxy / dns (以容器的方式部署)


二、kubeadm join 工作流程

為了方便部署操作,不需要手動從master 上面拷貝證書到每臺worknode , kubeadm 至少需要發起一次"不安全模式" 的訪問到api-server,從而拿到保存在configmap中的cluster-info,而bootstrap token 扮演的就是這個過程中安全驗證的角色。


三、指定kubeadm 部署參數

$ kubeadm init --config kubeadm.yaml

在kubeadm.yaml 配置文件中定義

PS:kubeadm 的不足之處在于,它并沒有解決像etcd 、master 等組件的高可用部署,而是單點部署。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南召县| 赤城县| 永善县| 高雄县| 渭南市| 巴中市| 喀喇沁旗| 德令哈市| 灵川县| 大庆市| 腾冲县| 鄂托克旗| 平顶山市| 大洼县| 永康市| 香格里拉县| 木兰县| 綦江县| 通海县| 和田县| 武威市| 商洛市| 桓仁| 龙陵县| 大埔县| 澄江县| 望城县| 惠来县| 兰溪市| 淄博市| 巴里| 达日县| 郁南县| 偏关县| 江口县| 闽侯县| 库车县| 卓资县| 凭祥市| 永清县| 临泉县|