1 云計(jì)算時(shí)代的操作系統(tǒng)
Kubernetes 是一個(gè)生產(chǎn)級(jí)別的 容器編排平臺(tái) 和 集群管理系統(tǒng) ,能夠 創(chuàng)建、調(diào)度容器,監(jiān)控、管理服務(wù)器。
- 容器是什么?容器是軟件,是應(yīng)用,是進(jìn)程。
- 服務(wù)器是什么?服務(wù)器是硬件,是 CPU、內(nèi)存、硬盤、網(wǎng)卡等。
那么,既可以管理軟件,也可以管理硬件,就是一個(gè)操作系統(tǒng)(Operating System)。
- 從某種角度來看,Kubernetes 可以說是一個(gè)集群級(jí)別的操作系統(tǒng)。
- 主要功能就是
資源管理
和作業(yè)調(diào)度
。 - Kubernetes 不是運(yùn)行在單機(jī)上管理單臺(tái)計(jì)算資源和進(jìn)程,而是運(yùn)行在多臺(tái)服務(wù)器上管理幾百幾千臺(tái)的計(jì)算資源,以及在這些資源上運(yùn)行的上萬上百萬的進(jìn)程,規(guī)模要大得多。
由于云原生的興起,開發(fā)人員從一開始就必須考慮后續(xù)的部署運(yùn)維工作,而運(yùn)維人員也需要在早期介入開發(fā),才能做好應(yīng)用的運(yùn)維監(jiān)控工作。
2 搭建小巧完備的Kubernetes環(huán)境
快速搭建 Kubernetes 環(huán)境的工具:
kind
minikube
https://kubernetes.io/zh/docs/tasks/tools/
我們選擇minikube
來學(xué)習(xí)Kubernetes。
實(shí)驗(yàn)環(huán)境:2c4g
https://minikube.sigs.k8s.io/docs/
2.1 安裝docker
sudo apt install -y docker.io #安裝Docker Engine
sudo service docker start #啟動(dòng)docker服務(wù)
sudo usermod -aG docker ${USER} #當(dāng)前用戶加入docker組,需要重新登錄生效
docker info
2.2 安裝minikube
# Intel x86_64
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# Apple arm64
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
sudo install minikube /usr/local/bin/
安裝完成后,查看minikube版本:
lianhaifeng@lianhaifeng-virtual-machine:~$ minikube version
minikube version: v1.30.1
commit: 08896fd1dc362c097c925146c4a0d0dac715ace0
2.3 安裝kubectl
要操作 Kubernetes,還需要另一個(gè)專門的客戶端工具“kubectl
”:
minikube kubectl
~/.bashrc
追加命令(如果沒有的話),簡(jiǎn)化kubectl命令:
...
alias kubectl="minikube kubectl --"
source <(kubectl completion bash)
2.4 部署Kubernetes
minikube start --kubernetes-version=v1.23.3
如果對(duì)自己的網(wǎng)速不自信的話,可以更換鏡像地址:
minikube stop
minikube delete --all
minikube start --kubernetes-version=v1.23.9 --image-mirror-country='cn' --registry-mirror=https://twm4fpgj.mirror.aliyuncs.com
查看Kubernetes集群狀態(tài):
lianhaifeng@lianhaifeng-virtual-machine:~$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
查看節(jié)點(diǎn):
lianhaifeng@lianhaifeng-virtual-machine:~$ minikube node list
minikube 192.168.58.2
運(yùn)行一個(gè)Nginx應(yīng)用:
kubectl run ngx --image=nginx:alpine
lianhaifeng@lianhaifeng-virtual-machine:~$ kubectl get pods
NAME READY STATUS RESTARTS AGE
ngx 1/1 Running 0 47h
至此,我們已經(jīng)安裝了一個(gè)小而美的Kubernetes環(huán)境,接下來讓我們探索下Kubernets工作機(jī)制的奧秘。
3 Kubernetes 的基本架構(gòu)
操作系統(tǒng)的一個(gè)重要功能就是抽象,從繁瑣的底層事務(wù)中抽象出一些簡(jiǎn)潔的概念,然后基于這些概念去管理系統(tǒng)資源。
Kubernetes 的管理目標(biāo)是大規(guī)模的集群和應(yīng)用,必須要能夠把系統(tǒng)抽象到足夠高的層次,分解出一些松耦合的對(duì)象,才能簡(jiǎn)化系統(tǒng)模型,減輕用戶的心智負(fù)擔(dān)。
k8s架構(gòu)圖
- 采用了現(xiàn)今流行的“
控制面 / 數(shù)據(jù)面
”(Control Plane / Data Plane)架構(gòu)。 - 集群里的計(jì)算機(jī)被稱為“節(jié)點(diǎn)”(Node),可以是實(shí)機(jī)也可以是虛機(jī)。
- 少量的節(jié)點(diǎn)用作控制面來執(zhí)行集群的管理維護(hù)工作。
- 控制面的節(jié)點(diǎn)叫做
Master Node
,一般簡(jiǎn)稱為 Master。 - 是整個(gè)集群里最重要的部分,可以說是 Kubernetes 的大腦和心臟。
- 控制面的節(jié)點(diǎn)叫做
- 其它的大部分節(jié)點(diǎn)都被劃歸數(shù)據(jù)面,用來跑業(yè)務(wù)應(yīng)用。
- 數(shù)據(jù)面的節(jié)點(diǎn)叫做
Worker Node
,一般就簡(jiǎn)稱為 Worker 或者 Node。 - 相當(dāng)于 Kubernetes 的手和腳,在 Master 的指揮下干活。
- Node 的數(shù)量非常多,構(gòu)成了一個(gè)資源池,Kubernetes 就在這個(gè)池里分配資源,調(diào)度應(yīng)用。
- 因?yàn)橘Y源被“池化”了,所以管理也就變得比較簡(jiǎn)單,可以在集群中任意添加或者刪除節(jié)點(diǎn)。
- 數(shù)據(jù)面的節(jié)點(diǎn)叫做
- kubectl,是 Kubernetes 的客戶端工具,用來操作 Kubernetes,但它位于集群之外,理論上不屬于集群。
查看 Kubernetes 的節(jié)點(diǎn)狀態(tài):
lianhaifeng@lianhaifeng-virtual-machine:~$ kubectl get node
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane,master 7d4h v1.23.3
可以看到當(dāng)前的 minikube 集群里只有一個(gè) Master,那 Node 呢?
是因?yàn)?Master 和 Node 的劃分不是絕對(duì)的。當(dāng)集群的規(guī)模較小,工作負(fù)載較少的時(shí)候,Master 也可以承擔(dān) Node 的工作,就像我們搭建的 minikube 環(huán)境,它就只有一個(gè)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)既是 Master 又是 Node。
3.1 節(jié)點(diǎn)內(nèi)部的結(jié)構(gòu)
Kubernetes 的節(jié)點(diǎn)內(nèi)部也具有復(fù)雜的結(jié)構(gòu),是由很多的模塊構(gòu)成的,這些模塊又可以分成組件(Component)
和插件(Addon)
兩類:
- 組件 實(shí)現(xiàn)了 Kubernetes 的核心功能特性,沒有這些組件 Kubernetes 就無法啟動(dòng)。
- 插件 則是 Kubernetes 的一些附加功能,不安裝也不會(huì)影響 Kubernetes 的正常運(yùn)行。
3.2 Master 里的組件
3.2 Master 里的組件
-
apiserver
- 是 Master 節(jié)點(diǎn),同時(shí)也是整個(gè) Kubernetes 系統(tǒng)的
唯一入口
。 - 對(duì)外公開了一系列的 RESTful API,并且加上了驗(yàn)證、授權(quán)等功能。
- 所有其它組件都只能和它直接通信,可以說是 Kubernetes 里的聯(lián)絡(luò)員。
- 是 Master 節(jié)點(diǎn),同時(shí)也是整個(gè) Kubernetes 系統(tǒng)的
-
etcd
- 是一個(gè)高可用的分布式 Key-Value 數(shù)據(jù)庫,用來持久化存儲(chǔ)系統(tǒng)里的各種資源對(duì)象和狀態(tài)。
- 相當(dāng)于 Kubernetes 里的配置管理員。
- 它只與 apiserver 有直接聯(lián)系,也就是說任何其它組件想要讀寫 etcd 里的數(shù)據(jù)都必須經(jīng)過 apiserver。
-
scheduler
- 負(fù)責(zé)容器的編排工作,檢查節(jié)點(diǎn)的資源狀態(tài)。
- 把 Pod 調(diào)度到最適合的節(jié)點(diǎn)上運(yùn)行,相當(dāng)于部署人員。
- 因?yàn)楣?jié)點(diǎn)狀態(tài)和 Pod 信息都存儲(chǔ)在 etcd 里,所以 scheduler 必須通過 apiserver 才能獲得。
-
controller-manager
- 負(fù)責(zé)維護(hù)容器和節(jié)點(diǎn)等資源的狀態(tài)。
- 實(shí)現(xiàn)故障檢測(cè)、服務(wù)遷移、應(yīng)用伸縮等功能,相當(dāng)于監(jiān)控運(yùn)維人員。
- 它也必須通過 apiserver 獲得存儲(chǔ)在 etcd 里的信息,才能夠?qū)崿F(xiàn)對(duì)資源的各種操作。
這 4 個(gè)組件也都被容器化了,運(yùn)行在集群的 Pod 里,我們可以用 kubectl 來查看它們的狀態(tài):
lianhaifeng@lianhaifeng-virtual-machine:~$ kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-64897985d-d5zbd 1/1 Running 1 (45h ago) 7d4h
etcd-minikube 1/1 Running 1 (45h ago) 7d4h
kube-apiserver-minikube 1/1 Running 3 7d4h
kube-controller-manager-minikube 1/1 Running 4 (45h ago) 7d4h
kube-proxy-zlztd 1/1 Running 1 (45h ago) 7d4h
kube-scheduler-minikube 1/1 Running 1 (45h ago) 7d4h
storage-provisioner 0/1 ImagePullBackOff 0 7d4h
-n kube-system
參數(shù),表示檢查“kube-system”名字空間里的 Pod。
3.3 Node 里的組件
-
kubelet
(非容器化)- 是 Node 的代理,負(fù)責(zé)管理 Node 相關(guān)的絕大部分操作。
- Node 上只有它能夠與 apiserver 通信。
- 實(shí)現(xiàn)狀態(tài)報(bào)告、命令下發(fā)、啟停容器等功能,相當(dāng)于是 Node 上的一個(gè)“小管家”。
-
kube-proxy
- 是 Node 的網(wǎng)絡(luò)代理,只負(fù)責(zé)管理容器的網(wǎng)絡(luò)通信,簡(jiǎn)單來說就是為 Pod 轉(zhuǎn)發(fā) TCP/UDP 數(shù)據(jù)包,相當(dāng)于是專職的“小郵差”。
-
container-runtime
- 是容器和鏡像的實(shí)際使用者。
- 在 kubelet 的指揮下創(chuàng)建容器,管理 Pod 的生命周期,是真正干活的“苦力”。
Kubernetes 的定位是容器編排平臺(tái),所以它沒有限定 container-runtime 必須是 Docker,完全可以替換成任何符合標(biāo)準(zhǔn)的其他容器運(yùn)行時(shí),例如 containerd、CRI-O 等等,只不過在這里我們使用的是Docker。
這 3 個(gè)組件中只有 kube-proxy 被容器化了,而 kubelet 因?yàn)楸仨氁芾碚麄€(gè)節(jié)點(diǎn),容器化會(huì)限制它的能力,所以它必須在 container-runtime 之外運(yùn)行。
使用 minikube ssh 命令登錄到節(jié)點(diǎn)后,可以用 docker ps
看到 kube-proxy:
lianhaifeng@lianhaifeng-virtual-machine:~$ minikube ssh
Last login: Sun May 21 11:53:08 2023 from 192.168.58.1
docker@minikube:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cafb3f8e014e nginx "/docker-entrypoint.…" 46 hours ago Up 46 hours k8s_ngx_ngx_default_066a844b-d429-4057-aca1-536c04d38f70_0
6f488ea5ca69 k8s.gcr.io/pause:3.6 "/pause" 46 hours ago Up 46 hours k8s_POD_ngx_default_066a844b-d429-4057-aca1-536c04d38f70_0
5b77694e7e89 a4ca41631cc7 "/coredns -conf /etc…" 46 hours ago Up 46 hours k8s_coredns_coredns-64897985d-d5zbd_kube-system_99c6f163-5738-41d8-ab8f-9a42dc3c6331_1
74d32f36a523 k8s.gcr.io/pause:3.6 "/pause" 46 hours ago Up 46 hours k8s_POD_storage-provisioner_kube-system_7fa7c71e-cc6a-4408-8b70-8b15534a10c8_1
0a2443c55984 k8s.gcr.io/pause:3.6 "/pause" 46 hours ago Up 46 hours k8s_POD_coredns-64897985d-d5zbd_kube-system_99c6f163-5738-41d8-ab8f-9a42dc3c6331_1
048758be7002 9b7cc9982109 "/usr/local/bin/kube…" 46 hours ago Up 46 hours k8s_kube-proxy_kube-proxy-zlztd_kube-system_b294b472-367b-44ca-8781-fab810428037_1
1148430b4e0f k8s.gcr.io/pause:3.6 "/pause" 46 hours ago Up 46 hours k8s_POD_kube-proxy-zlztd_kube-system_b294b472-367b-44ca-8781-fab810428037_1
5d164c717143 25f8c7f3da61 "etcd --advertise-cl…" 46 hours ago Up 46 hours k8s_etcd_etcd-minikube_kube-system_482305b50d4b0d3dbab5b9f1be9b0b18_1
78b7581b6659 b07520cd7ab7 "kube-controller-man…" 46 hours ago Up 46 hours k8s_kube-controller-manager_kube-controller-manager-minikube_kube-system_b965983ec05322d0973594a01d5e8245_4
3b81da17d618 f40be0088a83 "kube-apiserver --ad…" 46 hours ago Up 46 hours k8s_kube-apiserver_kube-apiserver-minikube_kube-system_b7b1a80caec341a470c95988d72c0626_3
431f68d5dec6 99a3486be4f2 "kube-scheduler --au…" 46 hours ago Up 46 hours k8s_kube-scheduler_kube-scheduler-minikube_kube-system_be132fe5c6572cb34d93f5e05ce2a540_1
315d15480c7d k8s.gcr.io/pause:3.6 "/pause" 46 hours ago Up 46 hours k8s_POD_kube-controller-manager-minikube_kube-system_b965983ec05322d0973594a01d5e8245_1
799bfc75e1af k8s.gcr.io/pause:3.6 "/pause" 46 hours ago Up 46 hours k8s_POD_kube-apiserver-minikube_kube-system_b7b1a80caec341a470c95988d72c0626_1
3a67d5e7cebb k8s.gcr.io/pause:3.6 "/pause" 46 hours ago Up 46 hours k8s_POD_etcd-minikube_kube-system_482305b50d4b0d3dbab5b9f1be9b0b18_1
729db09d17a6 k8s.gcr.io/pause:3.6 "/pause" 46 hours ago Up 46 hours k8s_POD_kube-scheduler-minikube_kube-system_be132fe5c6572cb34d93f5e05ce2a540_1
docker@minikube:~$ docker ps |grep kube-proxy
048758be7002 9b7cc9982109 "/usr/local/bin/kube…" 46 hours ago Up 46 hours k8s_kube-proxy_kube-proxy-zlztd_kube-system_b294b472-367b-44ca-8781-fab810428037_1
1148430b4e0f k8s.gcr.io/pause:3.6 "/pause" 46 hours ago Up 46 hours k8s_POD_kube-proxy-zlztd_kube-system_b294b472-367b-44ca-8781-fab810428037_1
退出(exit),查看 kubelet:
lianhaifeng@lianhaifeng-virtual-machine:~$ ps -ef|grep kubelet
root 4547 3077 6 04:21 ? 01:03:42 /var/lib/minikube/binaries/v1.23.3/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime=docker --hostname-override=minikube --kubeconfig=/etc/kubernetes/kubele .conf --node-ip=192.168.58.2
root 5147 5060 8 04:21 ? 01:20:09 kube-apiserver --advertise-address=192.168.58.2 --allow-privileged=true --authorization-mode=Node,RBAC --client-ca-file=/var/lib/minikube/certs/ca.crt --enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota --enable-bootstrap-token-auth=true --etcd-cafile=/var/lib/minikube/certs/etcd/ca.crt --etcd-certfile=/var/lib/minikube/certs/apiserver-etcd-client.crt --etcd-keyfile=/var/lib/minikube/certs/apiserver-etcd-client.key --etcd-servers=https://127.0.0.1:2379 --kubelet-client-certificate=/var/lib/minikube/certs/apiserver-kubelet-client.crt --kubelet-client-key=/var/lib/minikube/certs/apiserver-kubelet-client.key --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --proxy-client-cert-file=/var/lib/minikube/certs/front-proxy-client.crt --proxy-client-key-file=/var/lib/minikube/certs/front-proxy-client.key --requestheader-allowed-names=front-proxy-client --requestheader-client-ca-file=/var/lib/minikube/certs/front-proxy-ca.crt --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-group-headers=X-Remote-Group --requestheader-username-headers=X-Remote-User --secure-port=8443 --service-account-issuer=https://kubernetes.default.svc.cluster.local --service-account-key-file=/var/lib/minikube/certs/sa.pub --service-account-signing-key-file=/var/lib/minikube/certs/sa.key --service-cluster-ip-range=10.96.0.0/12 --tls-cert-file=/var/lib/minikube/certs/apiserver.crt --tls-private-key-file=/var/lib/minikube/certs/apiserver.key
3.4 組件總結(jié)
Kubernetes的大致工作流程
:
- 每個(gè) Node 上的 kubelet 會(huì)定期向 apiserver 上報(bào)節(jié)點(diǎn)狀態(tài),apiserver 再存到 etcd 里。
- 每個(gè) Node 上的 kube-proxy 實(shí)現(xiàn)了 TCP/UDP 反向代理,讓容器對(duì)外提供穩(wěn)定的服務(wù)。
- scheduler 通過 apiserver 得到當(dāng)前的節(jié)點(diǎn)狀態(tài),調(diào)度 Pod,然后 apiserver 下發(fā)命令給某個(gè) Node 的 kubelet,kubelet 調(diào)用 container-runtime 啟動(dòng)容器。
- controller-manager 也通過 apiserver 得到實(shí)時(shí)的節(jié)點(diǎn)狀態(tài),監(jiān)控可能的異常情況,再使用相應(yīng)的手段去調(diào)節(jié)恢復(fù)。
3.4 插件
minikube 也支持很多的插件,使用命令minikube addons list
就可以查看插件列表:
lianhaifeng@lianhaifeng-virtual-machine:~$ minikube addons list
|-----------------------------|----------|--------------|--------------------------------|
| ADDON NAME | PROFILE | STATUS | MAINTAINER |
|-----------------------------|----------|--------------|--------------------------------|
| ambassador | minikube | disabled | 3rd party (Ambassador) |
| auto-pause | minikube | disabled | Google |
| cloud-spanner | minikube | disabled | Google |
| csi-hostpath-driver | minikube | disabled | Kubernetes |
| dashboard | minikube | disabled | Kubernetes |
| default-storageclass | minikube | enabled ? | Kubernetes |
| efk | minikube | disabled | 3rd party (Elastic) |
| freshpod | minikube | disabled | Google |
| gcp-auth | minikube | disabled | Google |
| gvisor | minikube | disabled | Google |
| headlamp | minikube | disabled | 3rd party (kinvolk.io) |
| helm-tiller | minikube | disabled | 3rd party (Helm) |
| inaccel | minikube | disabled | 3rd party (InAccel |
| | | | [info@inaccel.com]) |
| ingress | minikube | disabled | Kubernetes |
| ingress-dns | minikube | disabled | Google |
| istio | minikube | disabled | 3rd party (Istio) |
| istio-provisioner | minikube | disabled | 3rd party (Istio) |
| kong | minikube | disabled | 3rd party (Kong HQ) |
| kubevirt | minikube | disabled | 3rd party (KubeVirt) |
| logviewer | minikube | disabled | 3rd party (unknown) |
| metallb | minikube | disabled | 3rd party (MetalLB) |
| metrics-server | minikube | disabled | Kubernetes |
| nvidia-driver-installer | minikube | disabled | Google |
| nvidia-gpu-device-plugin | minikube | disabled | 3rd party (Nvidia) |
| olm | minikube | disabled | 3rd party (Operator Framework) |
| pod-security-policy | minikube | disabled | 3rd party (unknown) |
| portainer | minikube | disabled | 3rd party (Portainer.io) |
| registry | minikube | disabled | Google |
| registry-aliases | minikube | disabled | 3rd party (unknown) |
| registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) |
| storage-provisioner | minikube | enabled ? | Google |
| storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) |
| volumesnapshots | minikube | disabled | Kubernetes |
|-----------------------------|----------|--------------|--------------------------------|
比較重要的有兩個(gè):DNS
和 Dashboard
。
-
DNS
- 在 Kubernetes 集群里實(shí)現(xiàn)了域名解析服務(wù),能夠讓我們以域名而不是 IP 地址的方式來互相通信。
- 是服務(wù)發(fā)現(xiàn)和負(fù)載均衡的基礎(chǔ)。
- 由于它對(duì)微服務(wù)、服務(wù)網(wǎng)格等架構(gòu)至關(guān)重要,所以基本上是 Kubernetes 的必備插件。
-
Dashboard
- 儀表盤,為 Kubernetes 提供了一個(gè)圖形化的操作界面,非常直觀友好。
- 雖然大多數(shù) Kubernetes 工作都是使用命令行 kubectl,但有的時(shí)候在 Dashboard 上查看信息也是挺方便的。
只要在 minikube 環(huán)境里執(zhí)行一條簡(jiǎn)單的命令,就可以自動(dòng)用瀏覽器打開 Dashboard 頁面,而且還支持中文:
lianhaifeng@lianhaifeng-virtual-machine:~/桌面$ minikube dashboard
?? 正在驗(yàn)證 dashboard 運(yùn)行情況 ...
?? Launching proxy ...
?? 正在驗(yàn)證 proxy 運(yùn)行狀況 ...
?? Opening http://127.0.0.1:36667/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
Gtk-Message: 20:12:44.459: Not loading module "atk-bridge": The functionality is provided by GTK natively. Please try to not load it.
宿主機(jī)本地訪問:
4 總結(jié)
Kubernetes功能非常完善,實(shí)現(xiàn)了大部分常見的運(yùn)維管理工作,而且是全自動(dòng)化的,能夠節(jié)約大量的人力成本。文章來源:http://www.zghlxwxcb.cn/news/detail-794842.html
- Kubernetes 能夠在集群級(jí)別管理應(yīng)用和服務(wù)器,可以認(rèn)為是一種集群操作系統(tǒng)。它使用“控制面 / 數(shù)據(jù)面”的基本架構(gòu),Master 節(jié)點(diǎn)實(shí)現(xiàn)管理控制功能,Worker 節(jié)點(diǎn)運(yùn)行具體業(yè)務(wù)。
- Kubernetes 由很多模塊組成,可分為核心的組件和選配的插件兩類。Master 里有 4 個(gè)組件,分別是 apiserver、etcd、scheduler、controller-manager。
- Node 里有 3 個(gè)組件,分別是 kubelet、kube-proxy、container-runtime。
- 通常必備的插件有 DNS 和 Dashboard。
文章來源地址http://www.zghlxwxcb.cn/news/detail-794842.html
到了這里,關(guān)于自動(dòng)化的運(yùn)維管理:探究Kubernetes工作機(jī)制的奧秘的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!