做網(wǎng)站需要什么樣的電腦配置太原網(wǎng)站優(yōu)化公司
關于CRI-O
Kubernetes最初使用Docker作為默認的容器運行時。然而,隨著Kubernetes的發(fā)展和OCI標準的確立,社區(qū)開始尋找更專門化的解決方案,以減少復雜性和提高性能。CRI-O的主要目標是提供一個輕量級的容器運行時,它可以直接運行OCI容器鏡像,并與Kubernetes無縫集成。
1. 主要特性
- 輕量級:相比于其他容器運行時,CRI-O的代碼庫更小,依賴更少,從而減小了安全風險和維護成本。
- 符合OCI標準:CRI-O完全支持OCI標準,這意味著它可以運行任何符合OCI規(guī)范的容器鏡像。
- Kubernetes集成:CRI-O專為Kubernetes設計,并與Kubernetes的CRI(Container Runtime Interface)完全兼容,確保了與Kubernetes的無縫集成。
- 可擴展性:通過插件架構,CRI-O可以靈活地擴展其功能,以適應不同的需求。
2. 架構
- Kubelet:Kubernetes的Kubelet組件通過CRI與CRI-O通信。
- CRI-O守護進程:CRI-O守護進程負責處理來自Kubelet的請求,并管理容器的生命周期。
- OCI運行時:CRI-O使用底層的OCI運行時(如runc)來創(chuàng)建和管理容器。
3. 主要組件
- CRI-O守護進程:這是CRI-O的核心,它負責處理CRI請求,并調用底層的OCI運行時。
- OCI運行時:例如
runc
,它是一個遵循OCI標準的低級別容器運行時,負責容器的實際創(chuàng)建和管理。 - 存儲插件:CRI-O支持多種存儲驅動,用于管理容器的文件系統(tǒng)層。
- 網(wǎng)絡插件:通過CNI(Container Network Interface)插件,CRI-O可以與各種網(wǎng)絡方案集成。
安裝前準備
同《kubernetes集群部署:環(huán)境準備及master節(jié)點部署(二)》
安裝CRI-O
1、配置第三方鏡像源
cat <<EOF | tee /etc/yum.repos.d/cri-o.repo
[cri-o]
name=CRI-O
baseurl=https://pkgs.k8s.io/addons:/cri-o:/prerelease:/main/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/addons:/cri-o:/prerelease:/main/rpm/repodata/repomd.xml.key
EOF
2、安裝CRI-O
yum -y install cri-o
3、配置開機啟動
systemctl enable crio
4、配置CRI-O:配置私有倉庫和pause_image
vi /etc/crio/crio.conf.d/10-crio.conf [crio.image]
insecure_registries = ["192.168.XX.XX"
]pause_image="192.168.XX.XX/kubeadm/pause:3.9"
signature_policy = "/etc/crio/policy.json"
5、啟動CRI-O
systemctl start crio
安裝kubeadm、kubelet、kubectl
同《kubernetes集群部署:環(huán)境準備及master節(jié)點部署(二)》
Node加入集群
按照《kubernetes集群部署:環(huán)境準備及master節(jié)點部署(二)》中“初始化kubernetes master節(jié)點”-“3、初始化master節(jié)點”中提示加入即可:
kubeadm join 192.168.XX.190:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:cd24961c8aafeff6a2fcc8cbadf2525cafec0ecb1b8afea866a23409ebeefcba
但是,如果需要進行定制化配置,則需要通過初始化文件啟動Node并加入集群。
1、自定義Node初始化文件:如下紅色字體分別配置master地址、criSocket和node名稱。
~]# cat kubeadm-join.default.yaml?
apiVersion: kubeadm.k8s.io/v1beta3
caCertPath: /etc/kubernetes/pki/ca.crt
discovery:
? bootstrapToken:
? ? apiServerEndpoint:?k8s130-node190:6443
? ? token: abcdef.0123456789abcdef
? ? unsafeSkipCAVerification: true
? timeout: 5m0s
? tlsBootstrapToken: abcdef.0123456789abcdef
kind: JoinConfiguration
nodeRegistration:
? criSocket: unix:///var/run/crio/crio.sock
? imagePullPolicy: IfNotPresent
? name: k8s130-node191
? taints: null
2、初始化并加入集群
~]# kubeadm join --config kubeadm-join.default.yaml |tee kubeadm-join.log
打印如下內容說明加入集群成功
安裝之后處理
1、驗證:執(zhí)行kubectl get node命令,node狀態(tài)顯示Ready。
kubectl get node
NAME ? ? ? ? ? ? STATUS ? ROLES ? ? ? ? ? AGE ? ? VERSION
k8s130-node190 ? Ready ? ?control-plane ? 7h57m ? v1.30.2
k8s130-node191 ? Ready ? ?<none> ? ? ? ? ?7h53m ? v1.30.2
2、執(zhí)行如下命令,成功創(chuàng)建kube-proxy和calico-node等Pod,狀態(tài)為Running。
kubectl get po -o wide -n kube-system|grep node191 ?
下一篇:《kubernetes集群部署:node節(jié)點部署和cri-docker運行時安裝(四)》