云原生技術與應用-Kubernetes架構原理與集群環境部署

目錄

一.為什么需要kubernetes

? 1.對于開發人員

? 2.對于運維人員

二.kubernetes帶來的挑戰

三.kubernetes架構解析

? 1.master節點的組件

? 2.node節點包含的組件

? 3.kubernetes網絡插件

四.kubernetes快速安裝kubernetes集群

? 1.部署docker環境

? 2.部署kubernetes集群

五.Metrics-server部署

? 1.修改yaml文件并安裝

? 2.測試安裝結果


一.為什么需要kubernetes

很多人會有疑問,有了 Docker 為什么還用 Kubernetes?

? ?在業務開始進行容器化時,前期需要容器化的項目可能并不多,涉及的容器也并不多,此時基于 Docker 容器直接部署至宿主機也能實現基本的需求。但是隨著項目越來越多,管理的容器也會越來越多,此時使用 “裸容器” 部署的方式管理起來就顯得很吃力,并且隨著業務量的增加,會明顯體會到 “裸容器” 的不足。比如:

  • 宿主機宕機造成該宿主機上的容器不可用,且無法自動恢復。

  • 容器明明在運行,接口就是不通(健康檢查做得不到位)

  • 應用程序部署、回滾、擴縮容困難。

  • 成百上千的容器和涉及的端口難以維護。

? ?上面的問題知識做一個簡單的羅列,真正使用時還有很多其他的問題。大家也可能使用過 Docker - compose、Docker - swarm 等編排工具,但是這些工具的功能和 Kubernetes 比起來還是相差很多的。所以注定 Kubernetes 編排工具將成為主流的容器編排工具。

1.對于開發人員

? ?對于開發人員而言,Kubernetes 是提升開發效率、保障應用穩定交付的重要助力,核心價值體現在以下方面:

一、環境一致性,告別 “本地能跑線上崩”

? ?開發時用 Docker 打包應用及依賴成鏡像,K8s 能讓鏡像在開發、測試、生產環境以統一方式運行,消除環境差異導致的調試成本,開發人員只需專注代碼邏輯,無需反復適配環境。

二、簡化復雜應用部署

? ?開發微服務等復雜應用,涉及多個服務、依賴,K8s 可通過配置文件(如 Deployment、Service),定義服務副本數、網絡規則等,一鍵部署整套應用,無需手動逐個啟動容器、配置網絡,降低部署復雜度。

2.對于運維人員

? ?對于運維人員來說,Kubernetes 是大幅提升運維效率、保障系統穩定可靠的 “利器”,核心價值體現在以下關鍵場景:

一、自動化運維,解放人力

  • 批量部署與管理:面對成百上千容器,無需逐臺操作。通過 K8s 配置文件(如 Deployment),定義應用副本數、資源限額等,一鍵部署 / 更新多實例,輕松管理復雜應用集群。

  • 故障自愈:自動監控容器、節點狀態,容器崩潰自動重啟,節點故障時遷移容器到健康節點,無需人工值守排查、重啟,減少服務中斷時間。

二、資源精細化管控

  • 資源調度:智能分配容器到集群節點,平衡 CPU、內存負載,避免節點過載或閑置,提升服務器資源利用率(比如把低負載容器調度到空閑節點)。

  • 資源隔離:為不同應用 / 服務設置 CPU、內存限額(Requests/Limits),防止某一應用 “搶占” 資源導致其他服務故障,保障多業務穩定共存。

二.kubernetes帶來的挑戰

? ? ?Kubernetes 從誕生至今,一路突飛猛進,在容器編排的領域過關斬將,最終拿下了容器編排的冠軍寶座,成為最無可替代、不可撼動的佼佼者,但是針對 Kubernetes 的學習和使用始終是一個很大的難題。

? ? 首先,Kubernetes 本身的學習就很困難,因為 Kubernetes 概念太多,涉及的知識面也非常廣泛,可能學習了一個月也無法入門,甚至連集群也搭建不出來,使人望而卻步。并且 Kubernetes 的技術能力要求也比較高,因為運維不僅僅均線于傳統運維,有時候可能要修改業務代碼、制定業務上線體系、給研發人員在開發應用中提供更好的建議等。需要掌握的知識也有很多,可能需要掌握公司內所有使用帶的代碼,比如代碼如何進行編譯、如何正確發布、如何修改代碼配置文件等,這對于運維人員也是一種挑戰。Kubernetes 的誕生把運維從傳統的運維轉變到了 DevOps 方向,需要面臨的問題更多,需要面臨的新技術也很多,但是當真正掌握 Kubernetes 的核心和涉及理念,就會收益終身。

三.kubernetes架構解析

1.master節點組件

? ? master 節點是 Kubernetes 集群的控制節點,在生產環境中不建議部署集群核心組件外的任何容器(在 kubeadm 安裝方式下,系統組件以容器方式運行在 master 節點的宿主機器上;二進制安裝方式下,系統組件以守護進程的方式運行,master 節點可以不運行任何容器 ),公司業務程序的容器是不建議部署在 master 節點上,以避免升級或者維護時對業務造成影響。

(1) API server
API server 提供了集群網關,是整個集群的控制中樞,提供集群中各個模塊之間的數據交換,并將集群信息存儲到 ETCD 集群中。同時,它也是集群管理、資源配額、提供完備的集群安全機制的入口,為集群各類資源對象提供增刪改查,API server 在客戶端對集群進行訪問。客戶端需要通過認證,并使用 API server 作為訪問節點和 pod (以及服務)的堡壘和代理 / 通道。

  • API 服務器公開 Kubernetes API。

  • REST/kubectl 的入口點 —— 它是 Kubernetes 控制平面的前端。

  • 它跟蹤所有集群組件的狀態并管理它們之間的交互。

  • 它旨在水平擴展。

  • 它使用 YAML/JSON manifest 文件。

  • 它驗證和處理通過 API 發出的請求。

(2) Scheduler
Scheduler 主要功能是資源調度,將 pod 調度到對應的主機上。依據請求資源的可用性、服務請求的質量等約束條件,k8s 也支持用戶自己提供的調度器。

  • 它將 pod 調度到工作節點。

  • 它監視 api-server 以查找沒有分配節點的新創建的 Pod,并選擇一個健康的節點讓它們運行。

  • 如果沒有合適的節點,則 Pod 將處于掛起狀態,直到出現這樣一個健康的節點。

  • 它監視 API Server 的新工作任務。

(3) Controller Manager
Controller Manager 負責維護集群的狀態,比如故障檢測、內存垃圾回收、滾動更新等,也執行 API 業務邏輯;k8s 默認提供 replication controller、replicaset controller、daemonset controller 等控制器。

  • 它監視它管理的對象的期望狀態并通過 API 服務器監視它們的當前狀態。

  • 采取糾正措施以確保當前狀態與所需狀態相同。

  • 它是控制器的控制器。

  • 它運行控制器進程,從邏輯上講,每個控制器都是一個單獨的進程,但為了降低復雜性,它們都被編譯成一個二進制文件并在單個進程中運行。

(4) etcd
etcd 用于可靠的存儲集群的配置數據,是一種持久性、輕量級、分布式的鍵值數據存儲組件,可以理解為一種分布式的非關系型數據庫。etcd 是集群的狀態,k8s 默認使用分布式的 etcd 集群整體存儲用來實現發現服務和共享配置集群的所有狀態都存儲在 etcd 實例中,并具有監控的能力,因此當 etcd 中的信息發生變化時,能夠快速地通知集群中相關的組件。

  • 它是一個一致的、分布式的、高度可用的鍵值存儲。

  • 它是有狀態的持久存儲,用于存儲所有 Kubernetes 集群數據(集群狀態和配置 )。

  • 它是集群的真相來源。

  • 它可以是控制平面的一部分,也可以在外部進行配置。

? ?etcd 集群最少 3 個節點,容錯點才會有 1 個。3 個節點和 4 個節點的容錯能力是一樣的,所以有時候保持奇數節點更好,從這里可以判斷出我們在部署 k8s 的時候,至少有 3 個節點,才保證 etcd 有 1 個節點容錯性。

? ?另外,etcd 的 Leader 選舉和數據寫入都需要半數以上的成員投票通過確認,因此,集群最好由奇數個成員組成,以確保集群內部一定能夠產生多數投票通過的場景。所以 etcd 集群至少需要 3 個以上的奇數個成員。

? ?如果使用偶數個節點,可能出現以下問題:

  • 偶數個節點集群不可用風險更高,表現在選主(Leader 選舉)過程中,有較大概率的等額選票,從而觸發下一輪選舉。

  • 偶數個節點集群在某些網絡分割的場景下無法正常工作。當網絡分割發生后,將集群節點對半分割開,形成腦裂。

2.node節點包含的組件

? ?Node 節點也被成為 worker 節點,是主要負責部署容器的主機,集群中的每個節點都必須具備容器的 Runtime(運行時),比如 docker

? ?kubelet 作為守護進程運行在每個 Node 節點上,負責監測該節點上所有的 pod,同時負責上報該節點上所有 pod 的運行狀態,確保節點上的所有容器都能正常運行。當 Node 節點宕機或故障時,該節點上運行的 pod 會被自動轉移到其他節點上。

(1)容器運行時

? ?docker 引擎是本地的容器運行時環境,負責鏡像管理以及 pod 和容器的真正運行。K8s 本身并不提供容器運行時環境,但提供了接口,可以插入所選擇的容器運行時環境,目前支持 Docker 和 rkt。容器運行時是負責運行容器(在 Pod 中)的軟件,為了運行容器,每個工作節點都有一個容器運行時引擎,它從容器鏡像注冊表(container image registry)中提取鏡像并啟動和停止容器。

Kubernetes 支持多種容器運行時:

  • Docker

  • containerd

  • CRI - O

  • Kubernetes CRI(Container Runtime Interface,容器運行時接口)的任何實現。

(2)kubelet

? ?kubelet 是 node 節點上最主要的工作代理,用于匯報節點狀態并負責維護 pod 的生命周期,也負責 volume(CVI)和網絡(CNI)的管理。kubelet 是 pod 和節點 API 的主要實現者,負責驅動容器執行層。作為基本的執行單元,pod 可以擁有多個容器和存儲卷,能夠方便地在每個容器中打包一個單一的應用,從而解脫了應用構建時和部署時所關心的事項,方便在物理機或虛擬機之間進行遷移。

  • 它是在集群中的每個節點上運行的代理。

  • 它充當著 API Server 和節點之間的管道。

  • 它確保容器在 Pod 中運行并且它們是健康的。

  • 它實例化并執行 Pod。

  • 它監視 API Server 的工作任務。

  • 它從主節點那里得到指令并報告給主節點。

(3)kube - proxy 代理

? ?kube - proxy 代理對抽象的應用地址的訪問,服務提供了一種訪問一群 pod 的途徑,kube - proxy 負責為服務提供集群內部的服務發現和應用的負載均衡(通常利用 iptables 規則),實現服務到 pod 的路由和轉發,此方式通過創建一個虛擬的 IP 來實現,客戶端能夠訪問此 IP,并能夠將服務透明地代理至 pod。

  • 它是網絡組件,在網絡中起著至關重要的作用。

  • 它管理 IP 轉換和路由。

  • 它是運行在集群中每個節點上的網絡代理。

  • 它維護節點上的網絡規則,這些網絡規則允許從集群內部或外部與 Pod 進行網絡通信。

  • 它確保每個 Pod 獲取唯一的 IP 地址。

  • 這使得 pod 中的所有容器共享一個 IP 成為可能。

  • 它促進了 Kubernetes 網絡服務和服務中所有 pod 的負載平衡。

  • 它處理單個主機子網并確保服務可供外部各方使用。

3.kubernetes網絡插件

? ?CNI(容器網絡接口)是一個云原生計算基金會項目,它包含了一些規范和庫,用于編寫在 Linux 容器中配置網絡接口的一系列插件。CNI 只關注容器的網絡連接,并在容器被刪除時移除所分配的資源。Kubernetes 使用 CNI 作為網絡提供商和 Kubernetes Pod 網絡之間的接口。

(1) Flannel 網絡

? ? 由 CoreoSk 開發的一個項目,很多部署工具或者 k8s 的發行版都是默認安裝,flannel 是可以用集群現有的 etcd,利用 api 方式存儲自身狀態信息,不需要專門的數據存儲,是配置第三層的 ipv4 Overlay 網絡,在此網絡內,每個節點一個子網,用于分配 ip 地址,配置 pod 時候,節點上的網橋接口會為每個新容器分配一個地址,同一主機中的 pod 可以使用網橋通信,不同主機的 pod 流量封裝在 udp 數據包中,路由到目的地。

? ? Flannel 通過每個節點上啟動一個 flnnel 的進程,負責給每一個節點上的子網劃分、將子網網段等信息保存至 etcd,具體的報文轉發是后端實現,在啟動時可以通過配置文件指定不同的后端進行通信,目前有 UDP、VXLAN、host-gateway 三種,VXLAN 是官方推薦,因為性能良好,不需人工干預。UDP、VXLAN 是基于三層網絡即可實現,host-gateway 模式需要集群所有機器都在同一個廣播域、就是需要在二層網絡在同一個交換機下才能實現,host-gateway 用于對網絡性能要求較高的常見,需要基礎網絡架構支持,UDP 用于測試或者不支持 VXLAN 的 linux 內核。反正一般小規模集群是完全夠用的,直到很多功能無法提供時在考慮其他插件。

(2) Calico 網絡

? ?雖然 falnnel 很好,但是 calico 因為其性能、靈活性都好而備受歡迎,calico 的功能更加全面,不但具有提供主機和 pod 間網絡通信的功能,還有網絡安全和管理的功能,而且在 CNI 框架之內封裝了 calico 的功能,calico 還能與服務網絡技術 Istio 集成,不但能夠更加清楚的看到網絡架構也能進行靈活的網絡策略的配置,calico 不使用 Overlay 網絡,配置在第三層網絡,使用 BGP 路由協議在主機之間路由數據包,意味著不需要包裝額外的封裝層。主要點在網絡策略配置這一點,可以提高安全性和網絡環境的控制。

? ?如果集群規模較大,選擇 calico 沒錯,當然 calico 提供長期支持,對于一次配置長期使用的目的來說,是個很好的選擇。

四.kubeadm快速安裝kubernetes集群

主機名IP 地址操作系統主要軟件
k8s-master192.168.10.101CentOS7.9

兩核、4G
Docker CE, Kube-apiserver,

Kube-controller-manager,

Kube-scheduler,

Kubelet, Etcd, Kube-proxy
k8s-node01192.168.10.102CentOS7.9

兩核、2G
Docker CE , Kubectl ,

Kube-proxy,Calico
k8s-node02192.168.10.103CentOS7.9

兩核、2G
Docker CE , Kubectl ,

Kube-proxy,Calico

1. 部署docker環境(此步驟在三個節點都執行)

(1)關閉防火墻

systemctl stop firewalld? ?

systemctl disable firewalld

(2)禁用selinux

sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

setenforce 0?

?(3)安裝docker

下載docker的repo文件

curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-cd.repo

替換倉庫地址

sed -i 's/$releasever/8/g' /etc/yum.repos.d/docker-ce.repo

sed -i 's/$basearch/x86_64/g' /etc/yum.repos.d/docker-ce.repo

更新索引文件并安裝docker

dnf clean all

dnf makecache

dnf -y install docker-ce?

添加國內鏡像站

mkdir /etc/docker/
vim /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
? "registry-mirrors": [
? ? "https://docker.m.daocloud.io",
? ? "https://docker.imgdb.de",
? ? "https://docker-0.unsee.tech",
? ? "https://docker.hlmirror.com"
? ]
}

開啟docker服務

systemctl daemon-reload?

systemctl restart docker?

systemctl enable docker?

docker version

優化內核參數?

vim /etc/sysctl.conf?
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

?

sysctl -p

?2.部署kubernetes集群

(1)配置三臺主機的主機名

主機一

hostnamectl set-hostname k8s-master?

bash

主機二?

hostnamectl set-hostname k8s-node01?

bash

主機三

hostnamectl set-hostname k8s-node02

bash

?(2)在三臺主機上綁定hosts

vim /etc/hosts

192.168.10.101? ? ? ? k8s-master

192.168.10.102? ? ? ? k8s-node01

192.168.10.103? ? ? ? k8s-node02?

(3)關閉交換分區

swapoff -a

sed -i '/swap/s/^/#/' /etc/fstab?

(4)配置kubernetes的yum源

操作節點:k8s-master,k8s-node01,k8s-node02

?vim??/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

?dnf clean all

(5)安裝kubelet,kubeadm和kubectl

?操作節點:k8s-master,k8s-node01,k8s-node02

dnf -y install kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0

(6)kubelet設置開機啟動

操作節點:k8s-master,k8s-node01,k8s-node02

systemctl enable kubelet

?(7)生成初始化配置文件

操作節點:k8s-master

kubeadm config print init-defaults > init-config.yaml

(8)修改初始化配置文件

?操作節點:k8s-master

vim init-config.yaml

apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:

- groups:
? - system:bootstrappers:kubeadm:default-node-token
? token: abcdef.0123456789abcdef
? ttl: 24h0m0s
? usages:
? - signing
? - authentication
kind: InitConfiguration
localAPIEndpoint:
? advertiseAddress: 192.168.10.101
? bindPort: 6443
nodeRegistration:
? criSocket: /var/run/dockershim.sock
? name: k8s-master
? taints: null

apiServer:
? timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
? type: CoreDNS
etcd:
? local:
? ? dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.23.0

networking:
? dnsDomain: cluster.local
? serviceSubnet: 10.96.0.0/12
? podSubnet: 10.244.0.0/16
scheduler: {}

?(9)拉取所需鏡像

?操作節點:k8s-master

kubeadm config images list --config init-config.yaml

(10)?初始化k8s-master

?操作節點:k8s-master

kubeadm init --config=init-config.yaml

(11)復制配置文件到用戶的home目錄

?操作節點:k8s-master

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

?(12)node節點加入集群

kubeadm join 192.168.10.101:6443 --token abcdef.0123456789abcdef \
? --discovery-token-ca-cert-hash \
sha256:8b17b7d607ab7f79c2249c58d74525368bbb15ad884c365aaa1a968b9833d107?

?(13)在k8s-master節點設置環境變量并查看節點信息

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

source ~/.bash_profile

kubectl get nodes
NAME ? ? ? ? STATUS ? ? ROLES ? ?AGE ? VERSION
k8s-master ? NotReady ? master ? 13m ? v1.19.4
k8s-node01 ? NotReady ? <none> ? 2m30s v1.19.4
k8s-node02 ? NotReady ? <none> ? 21s ? v1.19.4

kubectl get pod -A
NAMESPACE ? ? NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? READY ? STATUS ? ?RESTARTS ? AGE
kube-system ? coredns-6d8c4cb4d-7swl9 ? ? ? ? ? ? ? ? ? ?0/1 ? ? Pending ? 0 ? ? ? ? ?3m58s
kube-system ? coredns-6d8c4cb4d-rrlpp ? ? ? ? ? ? ? ? ? ?0/1 ? ? Pending ? 0 ? ? ? ? ?3m58s
kube-system ? etcd-k8s-master ? ? ? ? ? ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 1 (85s ago) ? 4m11s
kube-system ? kube-apiserver-k8s-master ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 1 (75s ago) ? 4m12s
kube-system ? kube-controller-manager-k8s-master ? ? ? ? 1/1 ? ? Running ? 1 (84s ago) ? 4m12s
kube-system ? kube-proxy-5hgbq ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? 1 (82s ago) ? 3m54s
kube-system ? kube-proxy-sdq9b ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? 1 (79s ago) ? 3m46s
kube-system ? kube-proxy-txdcr ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? 1 (85s ago) ? 3m58s
kube-system ? kube-scheduler-k8s-master ? ? ? ? ? ? ? ? ?1/1 ? ? Running?

?(14)部署calico網絡插件

?

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
[root@k8s-master ~]# kubectl create -f calico.yaml

kubectl get nodes
NAME ? ? ? ? STATUS ? ROLES ? ? ? ? ? ? ? ? ?AGE ? VERSION
k8s-master ? Ready ? ?control-plane,master ? 22h ? v1.23.0
k8s-node01 ? Ready ? ?<none> ? ? ? ? ? ? ? ? 22h ? v1.23.0
k8s-node02 ? Ready ? ?<none> ? ? ? ? ? ? ? ? 22h ? v1.23.0

kubectl get pod --all-namespaces

?五. Metrics-server部署

1.修改yaml文件并安裝

vim components.yaml
spec:
? containers:
? - args:
? ? - --kubelet-insecure-tls ?##添加
? ? - --cert-dir=/tmp
? ? - --secure-port=4443
? ? - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
? ? - --kubelet-use-node-status-port

? ? - --metric-resolution=15s
? ? image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.3
kubectl create -f components.yaml

2. 測試安裝結果

kubectl top node
NAME ? ? ? ? CPU(cores) ? CPU% ? MEMORY(bytes) ? MEMORY% ??
k8s-master ? 99m ? ? ? ? ?4% ? ? 1201Mi ? ? ? ? ?31% ? ? ??
k8s-node01 ? 57m ? ? ? ? ?2% ? ? 1597Mi ? ? ? ? ?42% ? ? ??
k8s-node02 ? 37m ? ? ? ? ?3% ? ? 616Mi ? ? ? ? ? 16% ? ? ??

kubectl top pod -A
NAMESPACE ? ? NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CPU(cores) ? MEMORY(bytes) ??
kube-system ? calico-kube-controllers-64cc74d646-vtjgc ? 1m ? ? ? ? ? 27Mi ? ? ? ? ? ?
kube-system ? calico-node-jswkq ? ? ? ? ? ? ? ? ? ? ? ? ?17m ? ? ? ? ?156Mi ? ? ? ? ??
kube-system ? calico-node-kfcr7 ? ? ? ? ? ? ? ? ? ? ? ? ?18m ? ? ? ? ?169Mi ? ? ? ? ??
kube-system ? calico-node-sr28f ? ? ? ? ? ? ? ? ? ? ? ? ?15m ? ? ? ? ?161Mi ? ? ? ? ??
kube-system ? coredns-6d8c4cb4d-gggss ? ? ? ? ? ? ? ? ? ?2m ? ? ? ? ? 64Mi ? ? ? ? ? ?
kube-system ? coredns-6d8c4cb4d-l6plx ? ? ? ? ? ? ? ? ? ?2m ? ? ? ? ? 21Mi ? ? ? ? ? ?
kube-system ? etcd-k8s-master ? ? ? ? ? ? ? ? ? ? ? ? ? ?14m ? ? ? ? ?64Mi ? ? ? ? ? ?
kube-system ? kube-apiserver-k8s-master ? ? ? ? ? ? ? ? ?37m ? ? ? ? ?361Mi ? ? ? ? ??
kube-system ? kube-controller-manager-k8s-master ? ? ? ? 9m ? ? ? ? ? 55Mi ? ? ? ? ? ?
kube-system ? kube-proxy-4vn4c ? ? ? ? ? ? ? ? ? ? ? ? ? 1m ? ? ? ? ? 23Mi ? ? ? ? ? ?
kube-system ? kube-proxy-5dgbm ? ? ? ? ? ? ? ? ? ? ? ? ? 1m ? ? ? ? ? 69Mi ? ? ? ? ? ?
kube-system ? kube-proxy-tbqkz ? ? ? ? ? ? ? ? ? ? ? ? ? 1m ? ? ? ? ? 24Mi ? ? ? ? ? ?
kube-system ? kube-scheduler-k8s-master ? ? ? ? ? ? ? ? ?3m ? ? ? ? ? 25Mi ? ? ? ? ? ?
kube-system ? metrics-server-66bdc46d86-4mfqw ? ? ? ? ? ?3m ? ? ? ? ? 25Mi ??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89455.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

百度權重提升技巧分析:從底層邏輯到實戰策略

在搜索引擎優化&#xff08;SEO&#xff09;領域&#xff0c;百度權重始終是網站運營者關注的核心指標之一。它不僅反映了網站在百度搜索中的綜合表現&#xff0c;更直接影響著流量獲取能力與商業價值。然而&#xff0c;百度權重并非百度官方直接公布的數據&#xff0c;而是第三…

模擬數據生成---使用NGS數據模擬軟件VarBen

目錄 1.在BAM文件中根據指定的變異等位基因分數的指定位置或區域隨機選擇read。 2.篩選變異等位基因分數的reads: 3.裝BWA和samtools軟件包(samtools在linux系統中下載過,前文有講過) 4.寫py腳本 5.下載pysam庫模塊 6.下載參考基因組hg38 7.解壓gz 8.建立samtools索引…

Redis-典型應用-分布式鎖

目錄 1.什么是分布式鎖? 2.分布式鎖的實現 3.引入過期時間 4.引入校驗ID 5.引入lua腳本: 6.引入看門狗(watch dog) 7.引入redislock算法: 1.什么是分布式鎖? 在 分布式系統中,會出現多個節點同時訪問同一個公共資源, 此時就需要通過鎖來作互斥控制,避免出現類似于多線程…

Dinky (Mac) 本地開發環境搭建指南

目錄 一、前置條件 二、代碼準備 三、前端環境搭建 1. 安裝Node環境 2. 安裝PNPM 3. 構建前端 四、后端環境搭建 1. 本地編譯依賴 2. 添加必要依賴 3. 啟動后端服務 五、訪問系統 附錄&#xff1a;官方參考 一、前置條件 確保已安裝以下軟件&#xff1a; 軟件要求…

Java Set 集合詳解:從基礎語法到實戰應用,徹底掌握去重與唯一性集合

作為一名 Java 開發工程師&#xff0c;你一定在實際開發中遇到過需要去重、唯一性校驗、快速查找等場景。這時候&#xff0c;Set 集合 就成為你不可或缺的工具。本文將帶你全面掌握&#xff1a;Set 接口的定義與核心方法常見實現類&#xff08;如 HashSet、TreeSet、LinkedHash…

在分布式系統中,如何保證緩存與數據庫的數據一致性?

口訣&#xff1a; 讀多寫少用旁路&#xff0c;先更庫再刪緩存&#xff1b; 強一致選寫透&#xff0c;緩存代理更庫走&#xff1b; 性能優先用寫回&#xff0c;異步批量有風險&#xff1b; 高并發加雙刪&#xff0c;延遲兜底防舊殘&#xff1b; 強一致用鎖串&#xff0c;并發雖低…

【洛谷P1417】烹調方案 題解

題目大意 一共有 nnn 件食材&#xff0c;每件食材有三個屬性&#xff0c;aia_iai?&#xff0c;bib_ibi? 和 cic_ici?&#xff0c;如果在 ttt 時刻完成第 iii 樣食材則得到 ai?tbia_i-t\times b_iai??tbi? 的美味指數&#xff0c;用第 iii 件食材做飯要花去 cic_ici? 的…

vue svg實現一個環形進度條組件

svg實現一個環形進度條設計初衷&#xff1a;本來想直接使用element的進度條組件的&#xff0c;但是好多屬性都沒有辦法控制。 UI設計的圖如下&#xff0c;需要控制未完成和已完成的顏色&#xff0c;端點的形狀改為普通的butt 所以使用svg實現了一個環形進度條組件element組件設…

02 51單片機之LED閃爍

文章目錄1、單片機1-1、簡介1-2、應用場景2、51單片機2-1、背景2-2、主要品牌及其產品2-3、基本組成2-4、命名規則3、單片機內部結構3-1、單片機內部結構圖3-2、單片機內部結構3-3、單片機內部管腳圖3-4、單片機最小系統3-5、開發板介紹4、點亮LED4-1、新建工程4-1-1、創建工程…

Typecho博客集成算術驗證碼防御垃圾評論實戰指南

文章目錄 Typecho實現算術驗證碼防御機器人垃圾評論的完整方案 背景與問題分析 技術方案設計 系統架構 技術選型 核心實現步驟 1. 創建驗證碼生成函數 2. 修改評論表單模板 3. 添加AJAX刷新功能 4. 創建驗證碼刷新接口 5. 添加評論提交驗證 安全增強措施 1. 防止暴力破解 2. 增…

clonezilla 導出自動化恢復iso

clonezilla 下載及U盤工具下載 clonezilla rufus U盤寫入工具ventoy U盤工具downloaddownloaddownload clonezilla 備份&#xff0c;連貫上一篇文章參考 Choose Clonezilla live (VGA 800x600) Wait for it to complete Language selection Keyboard Settings Select Mode …

深度學習模型開發部署全流程:以YOLOv11目標檢測任務為例

深度學習模型開發部署全流程&#xff1a;以YOLOv11目標檢測任務為例 深度學習模型從開發到部署的完整流程包含需求分析、數據準備、模型訓練、模型優化、模型測試和部署運行六大核心環節。YOLOv11作為新一代目標檢測模型&#xff0c;不僅延續了YOLO系列的高效實時性能&#xff…

單片機(STM32-串口通信)

一、串口通信基礎概念串口通信&#xff08;Serial Communication&#xff09;是一種在計算機和外部設備之間進行數據傳輸的通信方式。它通過串行方式逐位傳輸數據&#xff0c;是最基本和常用的通信接口之一。主要特點1. 串行傳輸(1)數據按位順序傳輸&#xff0c;一次只能傳輸一…

Redis學習其三(訂閱發布,主從復制,哨兵模式)

文章目錄9.Redis訂閱與發布9.1發布訂閱命令9.2示例10.Redis主從復制10.1概念10.2環境配置10.3集群搭建&#xff08;一主二從配置&#xff09;10.4使用規則&原理11.哨兵模式11.1基本概念11.2工作原理11.3使用案例12.緩存穿透,雪崩&#xff08;待拓展&#xff09;12.1緩存穿透…

跨平臺 App 如何無痛遷移到鴻蒙系統?全流程實戰+Demo 教程

摘要 目前&#xff0c;隨著 HarmonyOS&#xff08;鴻蒙系統&#xff09;的快速發展&#xff0c;越來越多開發者和企業希望將已有的 Android、Flutter、React Native 等跨平臺應用遷移到鴻蒙生態中。鴻蒙不僅具備分布式能力、原生性能和統一的開發范式&#xff0c;還提供了豐富的…

智慧后廚檢測算法構建智能廚房防護網

智慧后廚檢測&#xff1a;構建安全潔凈廚房的智能解決方案背景&#xff1a;傳統后廚管理的痛點與智慧化需求餐飲行業后廚管理長期面臨操作規范難落實、安全隱患難察覺、衛生狀況難追溯等痛點。傳統人工巡檢效率低、覆蓋面有限&#xff0c;難以實現24小時無死角監管。例如&#…

LatentSync: 一鍵自動生成對嘴型的視頻

LatentSync是什么 字節跳動與北京交通大學聯合推出了全新的唇形同步框架 LatentSync&#xff0c;它基于音頻驅動的潛在擴散模型&#xff0c;跳過了傳統的3D建模或2D特征點提取&#xff0c;直接生成自然逼真的說話視頻。 LatentSync借助Stable Diffusion強大的圖像生成能力&am…

在斷網情況下,網線直接連接 Windows 筆記本和 Ubuntu 服務器進行數據傳輸

在斷網情況下&#xff0c;通過網線直接連接 Windows 筆記本 和 Ubuntu 服務器上的容器 進行數據傳輸&#xff0c;可以按照以下步驟操作&#xff1a;1. 物理連接 使用網線直連&#xff1a;用一根 普通網線&#xff08;直通線&#xff09; 連接 Windows 筆記本和 Ubuntu 服務器的…

機器學習17-Mamba

深度學習之 Mamba 學習筆記 一、Mamba 的背景與意義 在深度學習領域&#xff0c;序列建模是一項核心任務&#xff0c;像自然語言處理、語音識別和視頻分析等領域&#xff0c;都要求模型能有效捕捉長序列里的依賴關系。之前&#xff0c;Transformer 憑借強大的注意力機制成為序列…

Java實現word、pdf轉html保留格式

一、word轉html 依賴&#xff1a; <properties><poi.version>5.2.3</poi.version><xhtml.version>2.0.4</xhtml.version> </properties><!--word轉html--> <dependency><groupId>org.apache.poi</groupId><a…