CRI-O ื›ืชื—ืœื™ืฃ ืœ-Docker ื›ืกื‘ื™ื‘ืช ื”ืคืขืœื” ืขื‘ื•ืจ Kubernetes: ื”ืชืงื ื” ื‘- CentOS 8

ืฉืœื•ื! ืฉืžื™ ืกืจื’ื™ื™, ืื ื™ DevOps ื‘-Surf. ืžื—ืœืงืช DevOps ื‘-Surf ืฉื•ืืคืช ืœื ืจืง ืœื™ืฆื•ืจ ืื™ื ื˜ืจืืงืฆื™ื” ื‘ื™ืŸ ืžื•ืžื—ื™ื ื•ืœืฉืœื‘ ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื”, ืืœื ื’ื ืœื—ืงื•ืจ ื•ืœื™ื™ืฉื ื‘ืื•ืคืŸ ืืงื˜ื™ื‘ื™ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืขื“ื›ื ื™ื•ืช ื”ืŸ ื‘ืชืฉืชื™ืช ืฉืœื” ื•ื”ืŸ ื‘ืชืฉืชื™ืช ื”ืœืงื•ื—.

ืœื”ืœืŸ ืื“ื‘ืจ ืžืขื˜ ืขืœ ื”ืฉื™ื ื•ื™ื™ื ื‘ืขืจื™ืžืช ื”ื˜ื›ื ื•ืœื•ื’ื™ื” ืœืžื›ื•ืœื•ืช ืฉื ืชืงืœื ื• ื‘ื”ืŸ ื‘ืžื”ืœืš ืœื™ืžื•ื“ ื”ื”ืคืฆื” CentOS 8 ื•ืขืœ ืžื” ืฉื™ืฉ CRI-O ื•ื›ื™ืฆื“ ืœื”ื’ื“ื™ืจ ื‘ืžื”ื™ืจื•ืช ืกื‘ื™ื‘ืช ื”ืคืขืœื” ืขื‘ื•ืจ ืงื•ื‘ืจื ื˜.

CRI-O ื›ืชื—ืœื™ืฃ ืœ-Docker ื›ืกื‘ื™ื‘ืช ื”ืคืขืœื” ืขื‘ื•ืจ Kubernetes: ื”ืชืงื ื” ื‘- CentOS 8

ืžื“ื•ืข Docker ืื™ื ื• ื›ืœื•ืœ ื‘- CentOS 8?

ืœืื—ืจ ื”ืชืงื ืช ื”ืžื”ื“ื•ืจื•ืช ื”ืขื™ืงืจื™ื•ืช ื”ืื—ืจื•ื ื•ืช rhel 8 ืื• CentOS 8 ืื™ ืืคืฉืจ ืฉืœื ืœืฉื™ื ืœื‘: ื”ื”ืคืฆื•ืช ื•ื”ืžืื’ืจื™ื ื”ืจืฉืžื™ื™ื ื”ืœืœื• ืื™ื ื ืžื›ื™ืœื™ื ืืช ื”ืืคืœื™ืงืฆื™ื” ืกึทื•ึธืจ, ืฉืžื—ืœื™ืคื•ืช ืžื‘ื—ื™ื ื” ืื™ื“ื™ืื•ืœื•ื’ื™ืช ื•ืคื•ื ืงืฆื™ื•ื ืœื™ืช ื—ื‘ื™ืœื•ืช ืคื•ื“ืžืŸ, Buildah (ื ื•ื›ื— ื‘ื”ืคืฆื” ื›ื‘ืจื™ืจืช ืžื—ื“ืœ) ื• CRI-O. ื–ืืช ื‘ืฉืœ ื™ื™ืฉื•ื ืžืขืฉื™ ืฉืœ ืชืงื ื™ื ืฉืคื•ืชื—ื•, ื‘ื™ืŸ ื”ื™ืชืจ, ืขืœ ื™ื“ื™ Red Hat ื‘ืžืกื’ืจืช ืคืจื•ื™ืงื˜ Open Container Initiative (OCI).

ื”ืžื˜ืจื” ืฉืœ OCI, ืฉื”ื™ื ื—ืœืง ืž-The Linux Foundation, ื”ื™ื ืœื™ืฆื•ืจ ืกื˜ื ื“ืจื˜ื™ื ืคืชื•ื—ื™ื ื‘ืชืขืฉื™ื™ื” ืขื‘ื•ืจ ืคื•ืจืžื˜ื™ื ืฉืœ ืงื•ื ื˜ื™ื™ื ืจ ื•ื–ืžื ื™ ืจื™ืฆื” ื”ืคื•ืชืจื™ื ืžืกืคืจ ื‘ืขื™ื•ืช ื‘ื•-ื–ืžื ื™ืช. ืจืืฉื™ืช, ื”ื ืœื ืกืชืจื• ืืช ื”ืคื™ืœื•ืกื•ืคื™ื” ืฉืœ ืœื™ื ื•ืงืก (ืœืžืฉืœ, ื‘ื—ืœืง ืฉื›ืœ ืชื•ื›ื ื” ืฆืจื™ื›ื” ืœื‘ืฆืข ืคืขื•ืœื” ืื—ืช, ื•ื›ืŸ ืกึทื•ึธืจ ื”ื•ื ืกื•ื’ ืฉืœ ืงื•ืžื‘ื™ื ื” ื”ื›ืœ ื‘ืื—ื“). ืฉื ื™ืช, ื”ื ื™ื›ื•ืœื™ื ืœื‘ื˜ืœ ืืช ื›ืœ ื”ืœื™ืงื•ื™ื™ื ื”ืงื™ื™ืžื™ื ื‘ืชื•ื›ื ื” ืกึทื•ึธืจ. ืฉืœื™ืฉื™ืช, ื”ื ื™ื”ื™ื• ืชื•ืืžื™ื ืœื—ืœื•ื˜ื™ืŸ ืœื“ืจื™ืฉื•ืช ื”ืขืกืงื™ื•ืช ืฉืœ ืคืœื˜ืคื•ืจืžื•ืช ืžืกื—ืจื™ื•ืช ืžื•ื‘ื™ืœื•ืช ืœืคืจื™ืกื”, ื ื™ื”ื•ืœ ื•ื”ื’ืฉื” ืฉืœ ืืคืœื™ืงืฆื™ื•ืช ืžื›ื•ืœื•ืช (ืœื“ื•ื’ืžื”, Red Hat OpenShift).

ืžื’ื‘ืœื•ืช ืกึทื•ึธืจ ื•ื”ื™ืชืจื•ื ื•ืช ืฉืœ ื”ืชื•ื›ื ื” ื”ื—ื“ืฉื” ื›ื‘ืจ ืชื•ืืจื• ื‘ืคื™ืจื•ื˜ ืžืกื•ื™ื ื‘ ืžืืžืจ ื–ื”, ื•ืชื™ืื•ืจ ืžืคื•ืจื˜ ืฉืœ ื›ืœ ืขืจื™ืžืช ื”ืชื•ื›ื ื” ื”ืžื•ืฆืขืช ื‘ืžืกื’ืจืช ืคืจื•ื™ืงื˜ OCI ื•ื”ืชื›ื•ื ื•ืช ื”ืืจื›ื™ื˜ืงื˜ื•ื ื™ื•ืช ืฉืœื• ื ื™ืชืŸ ืœืžืฆื•ื ื‘ืชื™ืขื•ื“ ื”ืจืฉืžื™ ื•ื‘ืžืืžืจื™ื ืฉืœ Red Hat ืขืฆืžื” (ืœื ืจืข ืžืืžืจ ื‘ื‘ืœื•ื’ Red Hat) ื•ื‘ืฆื“ ืฉืœื™ืฉื™ ื‘ื™ืงื•ืจื•ืช.

ื—ืฉื•ื‘ ืœืฆื™ื™ืŸ ืื™ื–ื• ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื™ืฉ ืœืจื›ื™ื‘ื™ ื”ืขืจื™ืžื” ื”ืžื•ืฆืขืช:

  • ืคื•ื“ืžืŸ - ืื™ื ื˜ืจืืงืฆื™ื” ื™ืฉื™ืจื” ืขื ืžื™ื›ืœื™ื ื•ืื—ืกื•ืŸ ืชืžื•ื ื•ืช ื‘ืืžืฆืขื•ืช ืชื”ืœื™ืš runC;
  • Buildah - ื”ืจื›ื‘ื” ื•ื”ืขืœืืช ืชืžื•ื ื•ืช ืœืจื™ืฉื•ื;
  • CRI-O - ืกื‘ื™ื‘ืช ื”ืคืขืœื” ืขื‘ื•ืจ ืžืขืจื›ื•ืช ืชื–ืžื•ืจ ืžื›ื•ืœื•ืช (ืœื“ื•ื’ืžื”, Kubernetes).

ืื ื™ ื—ื•ืฉื‘ ืฉื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ืกื›ืžืช ื”ืื™ื ื˜ืจืืงืฆื™ื” ื”ื›ืœืœื™ืช ื‘ื™ืŸ ืžืจื›ื™ื‘ื™ ื”ืžื—ืกื ื™ืช, ืžื•ืžืœืฅ ืœืกืคืง ื›ืืŸ ื“ื™ืื’ืจืžืช ื—ื™ื‘ื•ืจ ืงื•ื‘ืจื ื˜ c runC ื•ืกืคืจื™ื•ืช ื‘ืจืžื” ื ืžื•ื›ื” ื‘ืืžืฆืขื•ืช CRI-O:

CRI-O ื›ืชื—ืœื™ืฃ ืœ-Docker ื›ืกื‘ื™ื‘ืช ื”ืคืขืœื” ืขื‘ื•ืจ Kubernetes: ื”ืชืงื ื” ื‘- CentOS 8

CRI-O ะธ ืงื•ื‘ืจื ื˜ ืœื“ื‘ื•ืง ื‘ืื•ืชื• ืžื—ื–ื•ืจ ืฉื—ืจื•ืจ ื•ืชืžื™ื›ื” (ืžื˜ืจื™ืฆืช ื”ืชืื™ืžื•ืช ืคืฉื•ื˜ื” ืžืื•ื“: ื’ืจืกืื•ืช ืขื™ืงืจื™ื•ืช ืงื•ื‘ืจื ื˜ ะธ CRI-O ื—ื•ืคืคื™ื), ื•ื–ื”, ื‘ื”ืชื—ืฉื‘ ื‘ื”ืชืžืงื“ื•ืช ื‘ื‘ื“ื™ืงื” ืžืœืื” ื•ืžืงื™ืคื” ืฉืœ ืคืขื•ืœืช ืžื—ืกื ื™ืช ื–ื• ืขืœ ื™ื“ื™ ืžืคืชื—ื™ื, ื ื•ืชืŸ ืœื ื• ืืช ื”ื–ื›ื•ืช ืœืฆืคื•ืช ืœื™ืฆื™ื‘ื•ืช ื”ืžืจื‘ื™ืช ื”ื ื™ืชื ืช ืœื”ืฉื’ื” ื‘ืคืขื•ืœื” ื‘ื›ืœ ืชืจื—ื™ืฉื™ ืฉื™ืžื•ืฉ (ืงืœื™ืœื•ืช ื™ื—ืกื™ืช ืžื•ืขื™ืœื” ื’ื ื›ืืŸ CRI-O ืœืขื•ืžืช ืกึทื•ึธืจ ืขืงื‘ ื”ื’ื‘ืœื” ืžื›ื•ื•ื ืช ืฉืœ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช).

ื‘ืขืช ื”ื”ืชืงื ื” ืงื•ื‘ืจื ื˜ "ื“ืจืš ื ื›ื•ื ื”" (ืœืคื™ OCI, ื›ืžื•ื‘ืŸ) ื‘ืืžืฆืขื•ืช CRI-O ืขืœ CentOS 8 ื ืชืงืœื ื• ื‘ื›ืžื” ืงืฉื™ื™ื ืงืœื™ื, ืฉืขื ื–ืืช ื”ืชื’ื‘ืจื ื• ื‘ื”ืฆืœื—ื”. ืืฉืžื— ืœืฉืชืฃ ืืชื›ื ื‘ื”ื•ืจืื•ืช ื”ืชืงื ื” ื•ื”ื’ื“ืจื”, ืฉื‘ืกืš ื”ื›ืœ ื™ื™ืงื— ื›-10 ื“ืงื•ืช.

ื›ื™ืฆื“ ืœืคืจื•ืก Kubernetes ื‘- CentOS 8 ื‘ืืžืฆืขื•ืช ืžืกื’ืจืช CRI-O

ืชื ืื™ื ืžื•ืงื“ืžื™ื: ื ื•ื›ื—ื•ืช ืฉืœ ืžืืจื— ืื—ื“ ืœืคื—ื•ืช (2 ืœื™ื‘ื•ืช, 4 GB RAM, ืœืคื—ื•ืช 15 GB ืื—ืกื•ืŸ) ืขื ืžื•ืชืงืŸ CentOS 8 (ืžื•ืžืœืฅ ืคืจื•ืคื™ืœ ื”ืชืงื ืช "ืฉืจืช"), ื•ื›ืŸ ืขืจื›ื™ื ืขื‘ื•ืจื• ื‘-DNS ื”ืžืงื•ืžื™ (ื›ืžื•ืฆื ืื—ืจื•ืŸ, ื ื™ืชืŸ ืœื”ืกืชื“ืจ ืขื ืขืจืš ื‘- /etc/hosts). ื•ืืœ ืชืฉื›ื— ืœื‘ื˜ืœ ืืช ื”ื”ื—ืœืคื”.

ืื ื• ืžื‘ืฆืขื™ื ืืช ื›ืœ ื”ืคืขื•ืœื•ืช ืขืœ ื”ืžืืจื— ื›ืžืฉืชืžืฉ ื”ืฉื•ืจืฉ, ื”ื™ื–ื”ืจ.

  1. ื‘ืฉืœื‘ ื”ืจืืฉื•ืŸ, ื ื’ื“ื™ืจ ืืช ืžืขืจื›ืช ื”ื”ืคืขืœื”, ื ืชืงื™ืŸ ื•ื ืงื‘ืข ืชืœื•ืช ืžืงื“ื™ืžื” ืขื‘ื•ืจ CRI-O.
    • ื‘ื•ืื• ื ืขื“ื›ืŸ ืืช ืžืขืจื›ืช ื”ื”ืคืขืœื”:
      dnf -y update
      

    • ืœืื—ืจ ืžื›ืŸ ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื—ื•ืžืช ื”ืืฉ ื•-SELinux. ื›ืืŸ ื”ื›ืœ ืชืœื•ื™ ื‘ืกื‘ื™ื‘ื” ื‘ื” ื™ืขื‘ื“ื• ื”ืžืืจื— ืื• ื”ืžืืจื—ื™ื ืฉืœื ื•. ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ื—ื•ืžืช ืืฉ ื‘ื”ืชืื ืœื”ืžืœืฆื•ืช ืžืืช ืชื™ืขื•ื“, ืื•, ืื ืืชื” ื ืžืฆื ื‘ืจืฉืช ืžื”ื™ืžื ื” ืื• ืžืฉืชืžืฉ ื‘ื—ื•ืžืช ืืฉ ืฉืœ ืฆื“ ืฉืœื™ืฉื™, ืฉื ื” ืืช ืื–ื•ืจ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืœืืžื™ืŸ ืื• ื›ื‘ื” ืืช ื—ื•ืžืช ื”ืืฉ:
      firewall-cmd --set-default-zone trusted
      
      firewall-cmd --reload

      ื›ื“ื™ ืœื›ื‘ื•ืช ืืช ื—ื•ืžืช ื”ืืฉ ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” ื”ื‘ืื”:

      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 ืœืคื ื™ ืชื—ื™ืœืช ื”ืฉื™ืจื•ืช, ืžื›ื™ื•ื•ืŸ ืฉืœืจื›ื™ื‘ ื”-conmon ื”ื ื“ืจืฉ ื™ืฉ ืžื™ืงื•ื ืฉื•ื ื” ืžื–ื” ืฉืฆื•ื™ืŸ:

      sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf

      ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ื•ืœื”ืคืขื™ืœ ืืช ื”ื“ืžื•ืŸ CRI-O:

      systemctl enable --now crio
      

      ืืชื” ื™ื›ื•ืœ ืœื‘ื“ื•ืง ืืช ืกื˜ื˜ื•ืก ื”ื“ืžื•ืŸ:

      systemctl status crio
      

  2. ื”ืชืงื ื” ื•ื”ืคืขืœื” ืงื•ื‘ืจื ื˜.
    • ื‘ื•ืื• ื ื•ืกื™ืฃ ืืช ื”ืžืื’ืจ ื”ื ื“ืจืฉ:
      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

    • ื”ื ื™ื•ืื ืก ื”ื—ืฉื•ื‘ ื”ืฉื ื™: ืžื›ื™ื•ื•ืŸ ืฉืื ื• ืœื ืžืฉืชืžืฉื™ื ื‘ื“ืžื•ืŸ ืกึทื•ึธืจ, ืื‘ืœ ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘ื“ืžื•ืŸ 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
      

      ืœื”ืชืืžื” ืื™ืฉื™ืช ืžื˜ื•ืก ืฉืœื™ื˜ื” ืื• ืขื•ื‘ื“ ืฆืžืชื™ื ืชื•ืš ื“ืงื•ืช, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ืขื ื”ืชืกืจื™ื˜ ื”ื–ื”.

  3. ื”ื’ื™ืข ื”ื–ืžืŸ ืœืืชื—ืœ ืืช ื”ืืฉื›ื•ืœ ืฉืœื ื•.
    • ื›ื“ื™ ืœืืชื—ืœ ืืช ื”ืืฉื›ื•ืœ, ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื”:
      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 ื‘ืขื•ื“ ื›ืžื” ืฉื ื™ื, ืื‘ืœ ืื ื—ื ื• ื ืฆืคื” ื‘ื”ื ืื”. ืืชื” ื™ื›ื•ืœ ืœืฉืชืฃ ืืช ื“ืขืชืš ื›ื‘ืจ ืขื›ืฉื™ื• ื‘ืชื’ื•ื‘ื•ืช.

ื”ืžืฉืš ืœืขืงื•ื‘!

ืžืืžืจ ื–ื” ื”ื•ืคื™ืข ื”ื•ื“ื•ืช ืœืžืงื•ืจื•ืช ื”ื‘ืื™ื:



ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”