แแแแแ แฏแแแ! แแ แแฅแแแ แกแแ แแแ, แแ แแแ DevOps Surf-แจแ. DevOps แแแแแ แขแแแแแขแ Surf-แจแ แแแแแแ แแกแแฎแแแก แแ แ แแฎแแแแ แกแแแชแแแแแกแขแแแก แจแแ แแก แฃแ แแแแ แแฅแแแแแแแก แแแแงแแ แแแแก แแ แกแแแฃแจแแ แแ แแชแแกแแแแก แแแขแแแ แแ แแแแก, แแ แแแแ แแกแแแ แแฅแขแแฃแ แแ แจแแแกแฌแแแแแก แแ แแแแแ แแแก แแแแแแแแ แ แขแแฅแแแแแแแแแ แ แแแแ แช แกแแแฃแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแจแ, แแกแแแ แแแแฎแแแ แแแแแก แแแคแ แแกแขแ แฃแฅแขแฃแ แแจแ.
แฅแแแแแ แชแแขแแก แแแกแแฃแแ แแ แแแแขแแแแแ แแแแก แขแแฅแแแแแแแแก แแแกแขแแจแ แแ แกแแแฃแ แชแแแแแแแแแแ, แ แแแแแแแช แจแแแแฎแแแ แแแแแฌแแแแแแก แจแแกแฌแแแแแกแแก CentOS 8 แแ แแแแก แจแแกแแฎแแ, แแฃ แ แ แแ แแก CRI-O แแ แ แแแแ แกแฌแ แแคแแ แแแแงแแแแ แจแแกแ แฃแแแแแแ แแแ แแแ แแฃแแแ แแแขแแแ.
แ แแขแแ แแ แจแแแแก Docker CentOS 8-แจแ?
แฃแแฎแแแกแ แซแแ แแแแแ แแแแแจแแแแแแแก แแแงแแแแแแก แจแแแแแ rhel 8 แแ CentOS 8 แแ แจแแแซแแแแ แแ แจแแแแฉแแแแ: แแก แแแกแขแ แแแฃแชแแแแ แแ แแคแแชแแแแฃแ แ แกแแชแแแ แแ แจแแแชแแแก แแแแแแแชแแแก docker, แ แแแแแแช แแแแแแแแแฃแ แแ แแ แคแฃแแฅแชแแฃแ แแ แชแแแแก แแแแแขแแแก แแแแแแแ, แแแแแแฐ (แแแแฃแแแกแฎแแแแแ แฌแแ แแแแแแแแแแ แแแแแฌแแแแแแจแ) แแ CRI-O. แแก แแแแแแ แแแแแฃแแแ แกแขแแแแแ แขแแแแก แแ แแฅแขแแแฃแแ แแแแฎแแ แชแแแแแแแ, แ แแแแแแแช แจแแแฃแจแแแแแฃแแแ, แกแฎแแ แกแแแแแฎแแแแแ แแ แแแ, Red Hat-แแก แแแแ Open Container Initiative (OCI) แแ แแแฅแขแแก แคแแ แแแแแจแ.
OCI-แแก แแแแแแ, แ แแแแแแช แแ แแก Linux Foundation-แแก แแแฌแแแ, แแ แแก แจแแฅแแแแก แฆแแ แแแแฃแกแขแ แแแก แกแขแแแแแ แขแแแ แแแแขแแแแแ แแก แคแแ แแแขแแแแกแแแแก แแ แแแจแแแแแก แแ แแแแแกแแแแก, แ แแแแแแแช แแ แแแ แแฃแแแ แ แแแแแแแแ แแ แแแแแแแก แแแแแญแ แแก. แฏแแ แแ แแ, แแกแแแ แแ แแฌแแแแแฆแแแแแแแแแแแ Linux-แแก แคแแแแกแแคแแแก (แแแแแแแแแ, แแ แแแฌแแแจแ, แ แแ แแแแแแฃแแแ แแ แแแ แแแแ แฃแแแ แจแแแกแ แฃแแแก แแ แแ แแแฅแแแแแแ แแ docker แแ แแก แแ แแแแแ แ โแแ แแจแโ แแแแแแแแ). แแแแ แแช, แแแ แจแแแซแแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แงแแแแ แแ แกแแแฃแแ แฎแแ แแแแแก แแฆแแแคแฎแแ แ docker. แแแกแแแ, แแกแแแ แกแ แฃแแแ แแแแกแแแแแแ แฌแแแงแแแแ แแแแแ แชแแฃแแ แแแแขแคแแ แแแแแก แแแแแแก แแแแฎแแแแแแแแ แแแแขแแแแแ แแ แแแฃแแ แแแแแแแชแแแแแก แแแแแแแแแแก, แแแ แแแแกแ แแ แแแแกแแฎแฃแ แแแแกแแแแก (แแแแแแแแแ, Red Hat OpenShift).
แจแแแฆแฃแแแแแ docker แแ แแฎแแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แฃแแแ แแขแแกแแแแแ แฃแแแ แแแขแแแฃแ แแ แแ แแก แแฆแฌแแ แแแ
แแแแจแแแแแแแแแแ แแฆแแแแจแแแก, แ แ แคแฃแแฅแชแแแแแ แแแ แแฅแแก แจแแแแแแแแแแแฃแแ แกแขแแแแก แแแแแแแแแขแแแก:
- แแแแแแแ โ แแแ แแแแแ แ แฃแ แแแแ แแฅแแแแแแ แแแแขแแแแแ แแแแแ แแ แแแแแกแแฎแฃแแแแแก แจแแแแฎแแ runC แแ แแชแแกแแก แแแจแแแแแแ;
- แแแแแแฐ - แกแฃแ แแแแแแก แจแแแ แแแ แแ แ แแแกแขแ แจแ แแขแแแ แแแ;
- CRI-O โ แจแแกแแกแ แฃแแแแแแ แแแ แแแ แแแแขแแแแแ แแก แแ แแแกแขแ แแ แแแแก แกแแกแขแแแแแแกแแแแก (แแแแแแแแแ, Kubernetes).
แแ แแคแแฅแ แแ, แ แแ แกแขแแแแก แแแแแแแแแขแแแก แจแแ แแก แฃแ แแแแ แแฅแแแแแแแก แแแแแแ แกแฅแแแแก แแแกแแแแแแ, แแแแแแจแแฌแแแแแแ แแฅ แแแแจแแ แแก แแแแแ แแแ. แแฃแแแ แแแขแแแ c runC แแ แแแแแแ แแแแแก แแแแแแแแแแแแแก แแแแแงแแแแแแ CRI-O:
CRI-O ะธ แแฃแแแ แแแขแแแ แแแแชแแแแ แแแแแ แแแแแจแแแแแก แแ แแฎแแ แแแญแแ แแก แชแแแแ (แแแแกแแแแแแแแก แแแขแ แแชแ แซแแแแแ แแแ แขแแแแ: แซแแ แแแแแ แแแ แกแแแแ แแฃแแแ แแแขแแแ ะธ CRI-O แแแแฎแแแแ) แแ แแก, แแแแแแแแแ แแแแก แแแแ แแ แกแขแแแแก แแฃแจแแแแแก แกแ แฃแ แแ แงแแแแแกแแแแชแแแ แขแแกแขแแ แแแแแ แคแแแฃแกแแ แแแแก แแแแแแแแกแฌแแแแแแ, แแแแซแแแแก แฃแคแแแแแก แแแแแแแ แแฅแกแแแฃแแขแแชแแแจแ แแแฅแกแแแแแฃแ แแแฆแฌแแแแ แกแขแแแแแฃแ แแแแก แแแแแกแแแแ แ แแแแแงแแแแแแก แกแชแแแแ แแก แแแ แแแแแจแ (แแฅ แแกแแแ แกแแกแแ แแแแแแ แจแแแแ แแแแแ แกแแแกแฃแแฃแฅแ. CRI-O แจแแแแ แแแแ docker แคแฃแแฅแชแแแแแ แแแแก แแแแแแแแแแ แแฃแแ แจแแแฆแฃแแแแก แแแแ).
แแแกแขแแแแชแแแกแแก แแฃแแแ แแแขแแแ โแกแฌแแ แ แแแโ (OCI-แแก แแแฎแแแแแ, แ แ แแฅแแ แฃแแแ) แแแแแงแแแแแแ CRI-O on CentOS 8 แจแแแแฎแแแ แแชแแ แ แกแแ แแฃแแแแแ, แ แแแแแแแช, แแฃแแชแ, แฌแแ แแแขแแแแ แแแแซแแแแ. แกแแแแแแแแแแ แแแแแแแแ แแแ แแแกแขแแแแชแแแกแ แแ แแแแคแแแฃแ แแชแแแก แแแกแขแ แฃแฅแชแแแแก, แ แแช แฏแแแจแ แแแแฎแแแแแแ 10 แฌแฃแแก แแแแฆแแแก.
แ แแแแ แแแแแแแแแกแแ Kubernetes CentOS 8-แแ CRI-O แฉแแ แฉแแก แแแแแงแแแแแแ
แฌแแแแแแ แแแแแ: แแแแแแฃแ แแ แแ แฐแแกแขแแก แแ แกแแแแแ (2 แแแ แแแ, 4 GB แแแแ แแขแแฃแแ แแแฎแกแแแ แแแ, แแแแแแฃแ 15 GB แแแฎแกแแแ แแแ) แแแแแกแขแแแแ แแแฃแแ CentOS 8 (แ แแแแแแแแแแฃแแแ "แกแแ แแแ แแก" แแแกแขแแแแชแแแก แแ แแคแแแ), แแกแแแ แ แแแแ แช แแแกแจแ แฉแแแแฌแแ แแแ แแแแแแแแ แแ DNS-แจแ (แ แแแแ แช แฃแแแแแกแแแแแ แกแแจแฃแแแแแ, แจแแแแซแแแแ แแแแฆแแ แฉแแแแฌแแ แ /etc/hosts-แจแ). แแ แแ แแแแแแแฌแงแแแก
แฉแแแ แแแกแ แฃแแแแ แงแแแแ แแแแ แแชแแแก แฐแแกแขแแ, แ แแแแ แช root แแแแฎแแแ แแแแแ, แคแ แแฎแแแแ แแงแแแแ.
- แแแ แแแ แแขแแแแ แฉแแแ แแแแแแแแคแแแฃแ แแ แแแ OS-แก, แแแแแแแกแขแแแแ แแแ แแ แแแแแแแแคแแแฃแ แแ แแแ แฌแแแแกแฌแแ แแแแแแแแแแฃแแแแแแก CRI-O-แกแแแแก.
- แแแแแ แแแแแแฎแแแ OS:
dnf -y update
- แจแแแแแ แแฅแแแ แฃแแแ แแแแแแแคแแแฃแ แแ แแ firewall แแ SELinux. แแฅ แงแแแแแคแแ แ แแแแแแแแแแฃแแแ แแแ แแแแแ, แ แแแแแจแแช แฉแแแแ แแแกแแแแซแแแ แแ แแแกแแแแซแแแแ แแแฃแจแแแแแแ. แแฅแแแ แจแแแแซแแแแ แแแแงแแแแ firewall แ แแแแแแแแแชแแแแแก แจแแกแแแแแแกแแ
แแแแฃแแแแขแแชแแ , แแ, แแฃ แแฅแแแ แฎแแ แ แกแแแแ แฅแกแแแจแ แแ แแงแแแแแ แแแกแแแ แแฎแแ แแก แคแแแแ แแแแก, แจแแชแแแแแ แแแแฃแแแกแฎแแแแ แแแแ แกแแแแแแ แแ แแแแแ แแแ แแฃแฎแแ แ:firewall-cmd --set-default-zone trusted firewall-cmd --reload
Firewall-แแก แแแแแ แแแแกแแแแก แจแแแแซแแแแ แแแแแแงแแแแ แจแแแแแแ แแ แซแแแแแ:
systemctl disable --now firewalld
SELinux แฃแแแ แแแแแ แแแ แแ แแแแแ แแแ "แแแแแแแ แแฃแแ" แ แแแแแจแ:
setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
- แฉแแขแแแ แแแ แกแแญแแ แ แแแ แแแแก แแแแฃแแแแ แแ แแแแแขแแแ, แแแแแแแคแแแฃแ แแ แแ "br_netfilter" แแแแฃแแแก แแแขแแแแขแฃแ แ แฉแแขแแแ แแแ แกแแกแขแแแแก แแแจแแแแแกแแก:
modprobe overlay modprobe br_netfilter echo "br_netfilter" >> /etc/modules-load.d/br_netfilter.conf dnf -y install iproute-tc
- แแแแแขแแแแก แแแแแแแกแแแแ แแแแแก แแแกแแแฅแขแแฃแ แแแแแ แแ แขแ แแคแแแแก แแแแฃแจแแแแแแก แแแกแแกแฌแแ แแแแแ, แฉแแแ แแแแแแแแแแ แจแแกแแแแแแก แแแ แแแแขแ แแแก:
cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF
แแแแแแงแแแแ แแแแแแแแฃแแ แแแ แแแแขแ แแแ:
sysctl --system
- แแแแงแแแแ แกแแญแแ แ แแแ แกแแ CRI-O (แซแแ แแแแแ แแแ แกแแ CRI-O, แ แแแแ แช แฃแแแ แแฆแแแแจแแแ, แแแแฎแแแแ แกแแญแแ แ แแแ แกแแแก แแฃแแแ แแแขแแแ), แฃแแฎแแแกแ แกแขแแแแแฃแ แ แแแ แกแแแแแ แแฃแแแ แแแขแแแ แแแแแแแ 1.18:
export REQUIRED_VERSION=1.18
แแแแแแขแแ แกแแญแแ แ แกแแชแแแ:
dnf -y install 'dnf-command(copr)' dnf -y copr enable rhcontainerbot/container-selinux curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/CentOS_8/devel:kubic:libcontainers:stable.repo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION/CentOS_8/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION.repo
- แแฎแแ แฉแแแ แจแแแแแซแแแ แแแแแงแแแแ CRI-O:
dnf -y install cri-o
แงแฃแ แแแฆแแแ แแแแฅแชแแแ แแแ แแแ แแแฃแแแกแก, แ แแแแแกแแช แแฎแแแแแแ แแแกแขแแแแชแแแก แแ แแชแแกแจแ: แแฅแแแ แฃแแแ แจแแชแแแแแ แแแแคแแแฃแ แแชแแ CRI-O แกแแ แแแกแแก แแแฌแงแแแแแแ, แ แแแแแ แกแแญแแ แ แกแแแ แแ แแแแแแแแแขแก แแฅแแก แแแแกแฎแแแแแแฃแแ แแแแแแ แแแแ, แแแแ แ แแแแแแแแฃแแ:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
แแฎแแ แแฅแแแ แจแแแแซแแแแ แแแแแฅแขแแฃแ แแ แแ แแแแฌแงแแ แแแแแแ CRI-O:
systemctl enable --now crio
แแฅแแแ แจแแแแซแแแแ แจแแแแแฌแแแ แแแแแแแก แกแขแแขแฃแกแ:
systemctl status crio
- แแแแแ แแแแแแฎแแแ OS:
- แแแกแขแแแแชแแ แแ แแแแฅแขแแฃแ แแแ แแฃแแแ แแแขแแแ.
- แแแแแ แแแแแแแขแแ แกแแญแแ แ แกแแชแแแ:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg exclude=kubelet kubeadm kubectl EOF
แแฎแแ แฉแแแ แจแแแแแซแแแ แแแแแงแแแแ แแฃแแแ แแแขแแแ (แแแ แกแแ 1.18, แ แแแแ แช แแแแแ แแฆแแแแจแแ):
dnf install -y kubelet-1.18* kubeadm-1.18* kubectl-1.18* --disableexcludes=kubernetes
- แแแแ แ แแแแจแแแแแแแแแ แแแฃแแแกแ: แ แแแแแ แฉแแแ แแ แแแงแแแแแ แแแแแแก docker, แแแแ แแ แฉแแแ แแแงแแแแแ แแแแแแก CRI-O, แแแจแแแแแแแ แแ แแแแชแแแแแแแชแแแแแ แแฃแแแ แแแขแแแ แแฅแแแ แฃแแแ แแแแแแแแ แจแแกแแแแแแกแ แแแ แแแแขแ แแแ แแแแคแแแฃแ แแชแแแก แคแแแแจแ /var/lib/kubelet/config.yaml, แแแ แแแแแ แ แแ แจแแฅแแแแแ แกแแกแฃแ แแแแ แแแ แแฅแขแแ แแ:
mkdir /var/lib/kubelet cat <<EOF > /var/lib/kubelet/config.yaml apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration cgroupDriver: systemd EOF
- แแแกแแแ แแแแจแแแแแแแแแ แฌแแ แขแแแ, แ แแแแแกแแช แแฎแแแแแแ แแแกแขแแแแชแแแก แแ แแก: แแแฃแฎแแแแแแ แแแแกแ, แ แแ แฉแแแ แแแแฃแแแแแ แแแแแงแแแแแฃแแ แแ แแแแแ แ cgroup, แแ แแแกแ แแแแคแแแฃแ แแชแแ แแแแแแแ แแ แแฃแแแแขแแแแก แแแจแแแแแแ แแฃแแแแแขแ แแแซแแแแแแฃแแแ (แ แแแแ แช แชแแแกแแฎแแ แแ แแก แแแแฅแแแแ แแแแฃแแแแขแแชแแแจแ), แฉแแแ แฃแแแ แแแแแแแขแแ แแ แแฃแแแแขแแแ แคแแแแจแ, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แฉแแแแ แแแแกแขแแ แ แแ แแฅแแแแ แแแแชแแแแแแแแฃแแ:
cat /dev/null > /etc/sysconfig/kubelet cat <<EOF > /etc/sysconfig/kubelet KUBELET_EXTRA_ARGS=--container-runtime=remote --cgroup-driver=systemd --container-runtime-endpoint='unix:///var/run/crio/crio.sock' EOF
- แแฎแแ แฉแแแ แจแแแแแซแแแ แแแแแแฅแขแแฃแ แแ แแแแแแ แแฃแแแแแขแ:
sudo systemctl enable --now kubelet
แแแ แแแแ แกแแแแแขแ แแแ แแแแแแคแ แแแแแ แแ แแแแแแจแ แแแแแ แแแแแซแแแ แฌแฃแแแแจแ แจแแแแซแแแแ แแแแแแงแแแแ
แแ แกแแ แแแขแแ .
- แแแแแ แแแแแแแขแแ แกแแญแแ แ แกแแชแแแ:
- แฉแแแแ แแแแกแขแแ แแก แแแแชแแแแแแแชแแแก แแ แแ.
- แแแแกแขแแ แแก แแแแชแแแแแแแชแแแกแแแแก, แจแแแกแ แฃแแแ แแ แซแแแแแ:
kubeadm init --pod-network-cidr=10.244.0.0/16
แแแ แฌแแฃแแแแ, แ แแ แฉแแฌแแ แแ แแ แซแแแแแ แแแแกแขแแ แแแ แจแแกแแแ แแแแแแ โkubeadm joinโฆโ, แ แแแแแก แแแแแงแแแแแแกแแช แแแฎแแแแ แแแแแขแแแแก แแแแแก, แแ แกแฃแ แแชแแ แ แแแแแแแแฃแ แแแขแแแแแก.
- แแแแแ แแแแแงแแแแ แแแแแแแขแ (CNI) Pod แฅแกแแแแกแแแแก. แแแ แฉแแแ แแแแแแงแแแแ แแแแแแ. แจแแกแแซแแแ แฃแคแ แ แแแแฃแแแ แฃแแ แคแแแแแแ แแฅแแก แแแแกแแแแแแแแก แแ แแแแแแ nftablesแแแแฎ แแ แแแแฎ แแแแแแ - แแ แแแแแ แแ CNI แแแแแแแแแขแแชแแ, แ แแแแแแช แ แแแแแแแแแแฃแแแ แแ แกแ แฃแแแ แแแแแชแแแแแ แแ แแแฅแขแแก แแแแ แแฃแแแ แแแขแแแ:
kubectl --kubeconfig /etc/kubernetes/admin.conf apply -f https://docs.projectcalico.org/v3.15/manifests/calico.yaml
- แแฃแจแ แแแแแซแแก แฉแแแแก แแแแกแขแแ แแแ แแแกแแแแแจแแ แแแแแ, แแฅแแแ แฃแแแ แแแแแแแคแแแฃแ แแ แแ แแก 1 แแ 2 แแแกแขแ แฃแฅแชแแแแแก แแแฎแแแแแ, แแ แแแแแแงแแแแ
แกแแ แแแขแ , แจแแแแแ แแแฃแจแแแ แแ แซแแแแแ "kubeadm init..." แแแแแแแแแแแแแ, แ แแแแแแช แฌแแแ แแขแแแแ แฉแแแฌแแ แแ:kubeadm join $CONTROL_PLANE_ADDRESS:6443 --token $TOKEN --discovery-token-ca-cert-hash $TOKEN_HASH
- แแแแแ แจแแแแแแฌแแแ, แ แแ แฉแแแแ แแแแกแขแแ แ แแแแชแแแแแแแแฃแแแ แแ แแแแฌแงแ แแฃแจแแแแ:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
แแแแแแ! แแฅแแแ แฃแแแ แจแแแแซแแแแ แแฅแแแแ K8s แแแแกแขแแ แแ แแขแแแ แแแ แแแขแแแ แแแ.
- แแแแกแขแแ แแก แแแแชแแแแแแแชแแแกแแแแก, แจแแแกแ แฃแแแ แแ แซแแแแแ:
แ แ แแแแแแแแแ แฌแแ
แแแแแแแแแแ, แ แแ แแแแแ แแแชแแแฃแแ แแแกแขแ แฃแฅแชแแแแ แแแแแฎแแแ แ แแ แแแกแ แแ แแแ แแแแแก แแแแแแแแจแ.
แแแแฃแกแขแ แแแจแ แแแแแแแแ แ แแ แแชแแกแแแแก แจแแแแแ แฎแจแแ แแ แแแแแแแแแแฃแแแ แแแแแ, แแฃ แ แแแแ แแแแฆแแแ แแกแแแ แกแแแแแแ แแแแฎแแแ แแแแแแแกแ แแ แกแฎแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แจแแแฅแแแแแแแแก แแแแ แจแแกแแแแแแก แแแจแแจแ. แฏแแ แแแแแแแ แแแฃแ แแแแแแแแ, แ แแก แแแแแแฌแแแแก OCI แแแแชแแแขแแแแแ แ แแแแแแแแ แฌแแแแฌแแแจแ, แแแแ แแ แฉแแแ แกแแแแแแแแแแ แแแแแแแแแ แแแแแก. แแฅแแแ แจแแแแซแแแแ แแแแแแแ แแ แแฅแแแแ แแแ แ แแฎแแแแ แแแแแแขแแ แแแจแ.
แแแแแแแ แแแแแงแฃแ แ!
แแก แกแขแแขแแ แแแแแฉแแแ แจแแแแแแ แฌแงแแ แแแแแก แฌแงแแแแแแ:
- แแแแงแแคแแแแแ แแแแขแแแแแ แแก แแฃแจแแแแแก แแ แแแก แจแแกแแฎแแ
Kubernetes แแแแฃแแแแขแแชแแ แแแแ แแ CRI-O แแ แแแฅแขแ แแแขแแ แแแขแจแ- Red Hat แแแแแแก แกแขแแขแแแแ:
แแก แแ แแ ,แแ แแ แแ แแแแแ แกแฎแแ
แฌแงแแ แ: www.habr.com