做網(wǎng)站需要什么樣的電腦配置太原網(wǎng)站優(yōu)化公司
關(guān)于CRI-O
Kubernetes最初使用Docker作為默認(rèn)的容器運(yùn)行時(shí)。然而,隨著Kubernetes的發(fā)展和OCI標(biāo)準(zhǔn)的確立,社區(qū)開始尋找更專門化的解決方案,以減少復(fù)雜性和提高性能。CRI-O的主要目標(biāo)是提供一個(gè)輕量級(jí)的容器運(yùn)行時(shí),它可以直接運(yùn)行OCI容器鏡像,并與Kubernetes無縫集成。
1. 主要特性
- 輕量級(jí):相比于其他容器運(yùn)行時(shí),CRI-O的代碼庫更小,依賴更少,從而減小了安全風(fēng)險(xiǎn)和維護(hù)成本。
- 符合OCI標(biāo)準(zhǔn):CRI-O完全支持OCI標(biāo)準(zhǔn),這意味著它可以運(yùn)行任何符合OCI規(guī)范的容器鏡像。
- Kubernetes集成:CRI-O專為Kubernetes設(shè)計(jì),并與Kubernetes的CRI(Container Runtime Interface)完全兼容,確保了與Kubernetes的無縫集成。
- 可擴(kuò)展性:通過插件架構(gòu),CRI-O可以靈活地?cái)U(kuò)展其功能,以適應(yīng)不同的需求。
2. 架構(gòu)
- Kubelet:Kubernetes的Kubelet組件通過CRI與CRI-O通信。
- CRI-O守護(hù)進(jìn)程:CRI-O守護(hù)進(jìn)程負(fù)責(zé)處理來自Kubelet的請(qǐng)求,并管理容器的生命周期。
- OCI運(yùn)行時(shí):CRI-O使用底層的OCI運(yùn)行時(shí)(如runc)來創(chuàng)建和管理容器。
3. 主要組件
- CRI-O守護(hù)進(jìn)程:這是CRI-O的核心,它負(fù)責(zé)處理CRI請(qǐng)求,并調(diào)用底層的OCI運(yùn)行時(shí)。
- OCI運(yùn)行時(shí):例如
runc
,它是一個(gè)遵循OCI標(biāo)準(zhǔn)的低級(jí)別容器運(yùn)行時(shí),負(fù)責(zé)容器的實(shí)際創(chuàng)建和管理。 - 存儲(chǔ)插件:CRI-O支持多種存儲(chǔ)驅(qū)動(dòng),用于管理容器的文件系統(tǒng)層。
- 網(wǎng)絡(luò)插件:通過CNI(Container Network Interface)插件,CRI-O可以與各種網(wǎng)絡(luò)方案集成。
安裝前準(zhǔn)備
同《kubernetes集群部署:環(huán)境準(zhǔn)備及master節(jié)點(diǎn)部署(二)》
安裝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、配置開機(jī)啟動(dòng)
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、啟動(dòng)CRI-O
systemctl start crio
安裝kubeadm、kubelet、kubectl
同《kubernetes集群部署:環(huán)境準(zhǔn)備及master節(jié)點(diǎn)部署(二)》
Node加入集群
按照《kubernetes集群部署:環(huán)境準(zhǔn)備及master節(jié)點(diǎn)部署(二)》中“初始化kubernetes master節(jié)點(diǎn)”-“3、初始化master節(jié)點(diǎn)”中提示加入即可:
kubeadm join 192.168.XX.190:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:cd24961c8aafeff6a2fcc8cbadf2525cafec0ecb1b8afea866a23409ebeefcba
但是,如果需要進(jìn)行定制化配置,則需要通過初始化文件啟動(dòng)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
打印如下內(nèi)容說明加入集群成功
安裝之后處理
1、驗(yàn)證:執(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é)點(diǎn)部署和cri-docker運(yùn)行時(shí)安裝(四)》