CRI-O ื•ื•ื™ ืึท ืคืึทืจื‘ื™ื™ึทื˜ ืคึฟืึทืจ ื“ืึธืงืงืขืจ ื•ื•ื™ ืึท ืจื•ื ื˜ื™ืžืข ืกื•ื•ื™ื•ื•ืข ืคึฟืึทืจ Kubernetes: ืกืขื˜ืึทืคึผ ืื•ื™ืฃ CentOS 8

ื”ืขืœื! ืžื™ื™ึทืŸ ื ืึธืžืขืŸ ืื™ื– ืกืขืจื’ื™ื™, ืื™ืš ื‘ื™ืŸ ื“ืขื•ื•ืึธืคึผืก ื‘ื™ื™ ืกื•ืจืฃ. ื“ื™ DevOps ืึธืคึผื˜ื™ื™ืœื•ื ื’ ื‘ื™ื™ ืกื•ืจืฃ ื™ื™ืžื– ื ื™ื˜ ื‘ืœื•ื™ื– ืฆื• ืคืึทืจืœื™ื™ื’ืŸ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืฆื•ื•ื™ืฉืŸ ืกืคึผืขืฉืึทืœืึทืกืฅ ืื•ืŸ ื•ื™ืกืฉื˜ื™ืžืขืŸ ืึทืจื‘ืขื˜ ืคึผืจืึทืกืขืกืึทื–, ืึธื‘ืขืจ ืื•ื™ืš ืฆื• ืึทืงื˜ื™ื•ื•ืœื™ ืคืึธืจืฉื•ื ื’ ืื•ืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ ืงืจืึทื ื˜ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื– ื‘ื™ื™ื“ืข ืื™ืŸ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ืื•ืŸ ืื™ืŸ ื“ืขืจ ืงื•ื ื” ืก ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ.

ื•ื ื˜ืขืจ ืื™ืš ื•ื•ืขืœ ืจืขื“ืŸ ืึท ื‘ื™ืกืœ ื•ื•ืขื’ืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ื˜ืขื›ื ืึธืœืึธื’ื™ืข ืึธื ืœื™ื™ื’ืŸ ืคึฟืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจื– ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขืคึผืœืึธื ื˜ืขืจื˜ ื‘ืฉืขืช ืœืขืจื ืขืŸ ื“ื™ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ CentOS 8 ืื•ืŸ ื•ื•ืขื’ืŸ ื•ื•ืึธืก ืขืก ืื™ื– CRI-O ืื•ืŸ ื•ื•ื™ ืฆื• ื’ืขืฉื•ื•ื™ื ื“ ืฉื˜ืขืœืŸ ืึท ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ืกื•ื•ื™ื•ื•ืข ืคึฟืึทืจ Kubernetes.

CRI-O ื•ื•ื™ ืึท ืคืึทืจื‘ื™ื™ึทื˜ ืคึฟืึทืจ ื“ืึธืงืงืขืจ ื•ื•ื™ ืึท ืจื•ื ื˜ื™ืžืข ืกื•ื•ื™ื•ื•ืข ืคึฟืึทืจ Kubernetes: ืกืขื˜ืึทืคึผ ืื•ื™ืฃ CentOS 8

ืคืืจื•ื•ืืก ืื™ื– ื“ืึธืงืขืจ ื ื™ื˜ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ CentOS 8?

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

ื“ืขืจ ืฆื™ืœ ืคื•ืŸ OCI, ื•ื•ืึธืก ืื™ื– ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืœื™ื ื•ืงืก ื•ื•ื™ืงื™ืคึผืขื“ื™ืข, ืื™ื– ืฆื• ืฉืึทืคึฟืŸ ืึธืคึฟืŸ ื™ื ื“ืึทืกื˜ืจื™ ืกื˜ืึทื ื“ืึทืจื“ืก ืคึฟืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืคึฟืึธืจืžืึทื˜ื™ืจื•ื ื’ืขืŸ ืื•ืŸ ืจื•ื ื˜ื™ืžืขืก ื•ื•ืึธืก ืกืึธืœื•ื•ืข ืขื˜ืœืขื›ืข ืคึผืจืึธื‘ืœืขืžืก ืื™ืŸ ืึทืžืึธืœ. ืขืจืฉื˜ืขืจ, ื–ื™ื™ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ืกื•ื™ืกืขืจ ื“ื™ ืคื™ืœืึธืกืึธืคื™ืข ืคื•ืŸ โ€‹โ€‹ืœื™ื ื•ืงืก (ืœืžืฉืœ, ืื™ืŸ ื“ืขื ื˜ื™ื™ืœ ืึทื– ื™ืขื“ืขืจ ืคึผืจืึธื’ืจืึทื ื–ืึธืœ ื“ื•ืจื›ืคื™ืจืŸ ืื™ื™ืŸ ืงืึทืžืฃ, ืื•ืŸ ื“ืึธืงืงืขืจ ืื™ื– ืึท ืžื™ืŸ ืคื•ืŸ ืึทืœืข-ืื™ืŸ-ืื™ื™ืŸ ืคืึทืจื‘ื™ื ื“ืŸ). ืฆื•ื•ื™ื™ื˜ื ืก, ื–ื™ื™ ืงืขืŸ ืขืœื™ืžื™ื ื™ืจืŸ ืึทืœืข ื™ื’ื–ื™ืกื˜ื™ื ื’ ื“ื™ืคื™ืฉืึทื ืกื™ื– ืื™ืŸ ื“ื™ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื“ืึธืงืงืขืจ. ื“ืจื™ื˜ื ืก, ื–ื™ื™ ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื’ืึธืจ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ ื“ื™ ื’ืขืฉืขืคื˜ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืคื•ืŸ ืœื™ื“ื™ื ื’ ื’ืขืฉืขืคื˜ ืคึผืœืึทื˜ืคืึธืจืžืก ืคึฟืึทืจ ื“ื™ืคึผืœื•ื™ื™ื ื’, ืึธื ืคื™ืจื•ื ื’ ืื•ืŸ ืกืขืจื•ื•ื™ื ื’ ืงืึทื ื˜ื™ื™ื ืขืจื™ื™ื–ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– (ืœืžืฉืœ, Red Hat OpenShift).

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

ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ื˜ืึธืŸ ื•ื•ืึธืก ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื•ืŸ ื“ื™ ืคืืจื’ืขืœื™ื™ื’ื˜ ืึธื ืœื™ื™ื’ืŸ ื”ืึธื‘ืŸ:

  • ืคึผืึธื“ืžืึทืŸ - ื“ื™ืจืขืงื˜ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื•ืŸ ื‘ื™ืœื“ ืกื˜ืึธืจื™ื“ื–ืฉ ื“ื•ืจืš ื“ื™ runC ืคึผืจืึธืฆืขืก;
  • ื‘ื™ืœื“ืึทื” - ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืื•ืŸ ื•ืคึผืœืึธืึทื“ื™ื ื’ ื‘ื™ืœื“ืขืจ ืฆื• ื“ื™ ืจืขื’ื™ืกื˜ืจื™;
  • CRI-O - ืึทืŸ ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ืกื•ื•ื™ื•ื•ืข ืคึฟืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืึธืจืงืขืกื˜ืจืึทื˜ื™ืึธืŸ ืกื™ืกื˜ืขืžืขืŸ (ืœืžืฉืœ, Kubernetes).

ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืึทื– ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ื™ ืึทืœื’ืขืžื™ื™ื ืข ืกื›ืขืžืข ืคื•ืŸ โ€‹โ€‹ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืฆื•ื•ื™ืฉืŸ ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื•ืŸ ื“ื™ ืึธื ืœื™ื™ื’ืŸ, ืขืก ืื™ื– ืงืขื“ื™ื™ึทื™ืง ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืึท ืงืฉืจ ื“ื™ืึทื’ืจืึทืžืข ื“ืึธ Kubernetes c runC ืื•ืŸ ื ื™ื“ืขืจื™ืง-ืžื“ืจื’ื” ืœื™ื™ื‘ืจืขืจื™ื– ื ื™ืฆืŸ CRI-O:

CRI-O ื•ื•ื™ ืึท ืคืึทืจื‘ื™ื™ึทื˜ ืคึฟืึทืจ ื“ืึธืงืงืขืจ ื•ื•ื™ ืึท ืจื•ื ื˜ื™ืžืข ืกื•ื•ื™ื•ื•ืข ืคึฟืึทืจ Kubernetes: ืกืขื˜ืึทืคึผ ืื•ื™ืฃ CentOS 8

CRI-O ะธ Kubernetes ืึทื“ื›ื™ืจ ืฆื• ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžืขืœื“ื•ื ื’ ืื•ืŸ ืฉื˜ื™ืฆืŸ ืฆื™ืงืœ (ื“ื™ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืžืึทื˜ืจื™ืฅ ืื™ื– ื–ื™ื™ืขืจ ืคึผืฉื•ื˜: ื”ื•ื™ืคึผื˜ ื•ื•ืขืจืกื™ืขืก Kubernetes ะธ CRI-O ืฆื•ื ื•ื™ืคืคืึทืœืŸ), ืื•ืŸ ื“ืึธืก, ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื“ื™ ืคืึธืงื•ืก ืื•ื™ืฃ ื’ืึทื ืฅ ืื•ืŸ ืคื•ืœืฉื˜ืขื ื“ื™ืง ื˜ืขืกื˜ื™ื ื’ ืคื•ืŸ ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ืขื ืึธื ืœื™ื™ื’ืŸ ื“ื•ืจืš ื“ืขื•ื•ืขืœืึธืคึผืขืจืก, ื’ื™ื˜ ืื•ื ื“ื– ื“ื™ ืจืขื›ื˜ ืฆื• ื“ืขืจื•ื•ืึทืจื˜ืŸ ื“ื™ ืžืึทืงืกื™ืžื•ื ืึทื˜ืฉื™ื•ื•ืึทื‘ืึทืœ ืคืขืกื˜ืงื™ื™ึทื˜ ืื™ืŸ ืึธืคึผืขืจืึทืฆื™ืข ืื•ื ื˜ืขืจ ืงื™ื™ืŸ ื ื•ืฆืŸ ืกื™ื ืขืจื™ืึธื•ื– (ืจืขืœืึทื˜ื™ื•ื• ืœื™ื™ื˜ื ืึทืก ืื™ื– ืื•ื™ืš ื•ื•ื•ื™ืœื˜ื•ื™ืง ื“ืึธ CRI-O ืงืึทืžืคึผืขืจื“ ืžื™ื˜ ื“ืึธืงืงืขืจ ืจืขื›ื˜ ืฆื• ืึท ืฆื™ืœ-ืคืึทื ื’ืงืฉืึทื ืึทืœ ื‘ืึทื’ืจืขื ืขืฆื•ื ื’ ืคื•ืŸ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™).

ื•ื•ืขืŸ ื™ื ืกื˜ืึธืœื™ื ื’ Kubernetes "ืจืขื›ื˜ ื•ื•ืขื’" ื•ื•ืขื’ (ืœื•ื™ื˜ ืฆื• OCI, ืคื•ืŸ ืœื•ื™ืฃ) ื ื™ืฆืŸ CRI-O ืื•ื™ืฃ CentOS 8 ืžื™ ืจ ื”ืื‘ ืŸ ื–ื™ ืš ื’ืขื˜ืจืืค ืŸ ืขื˜ืœืขื› ืข ืงืœืฒื  ืข ืฉืฐืขืจื™ืงืฒื˜ืŸ , ืฐืขืœื› ืข ืžื™ ืจ ื”ืื‘ ืŸ ืื‘ืข ืจ ื“ืขืจืคืืœื’ . ืื™ืš ื•ื•ืขืœ ื–ื™ื™ืŸ ืฆื•ืคืจื™ื“ืŸ ืฆื• ื˜ื™ื™ืœืŸ ืžื™ื˜ ืื™ืจ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืคึฟืึทืจ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ื•ื•ืึธืก ืื™ืŸ ื’ืึทื ืฅ ื•ื•ืขื˜ ื ืขืžืขืŸ ื•ื•ืขื’ืŸ 10 ืžื™ื ื•ื˜.

ื•ื•ื™ ืฆื• ืฆืขื•ื•ื™ืงืœืขืŸ Kubernetes ืื•ื™ืฃ CentOS 8 ื ื™ืฆืŸ ื“ื™ CRI-O ืคืจื™ื™ืžื•ื•ืขืจืง

ืคึผืจื™ืจืขืงื•ื•ืึทื–ืึทืฅ: ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืœืคึผื—ื•ืช ืื™ื™ืŸ ื‘ืึทืœืขื‘ืึธืก (2 ืงืึธืจืขืก, 4 ื’ื™ื’ืื‘ื™ื™ื˜ ื‘ืึทืจืึทืŸ, ืœืคึผื—ื•ืช 15 ื’ื™ื’ืื‘ื™ื™ื˜ ืกื˜ืึธืจื™ื“ื–ืฉ) ืžื™ื˜ ืื™ื ืกื˜ืึทืœื™ืจืŸ CentOS 8 (ื“ื™ "ืกืขืจื•ื•ืขืจ" ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’ ืคึผืจืึธืคื™ืœ ืื™ื– ืจืขืงืึทืžืขื ื“ื™ื“), ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืื™ื™ื ืกืŸ ืคึฟืึทืจ ืขืก ืื™ืŸ ื“ื™ ื”ื™ื’ืข ื“ื ืก (ื•ื•ื™ ืึท ืœืขืฆื˜ืข ืจื™ื–ืึธืจื˜, ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ื“ื•ืจืš ืžื™ื˜ ืึท ืคึผืึธื–ื™ืฆื™ืข ืื™ืŸ /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, ื•ื•ื™ ืฉื•ื™ืŸ ื“ืขืจืžืื ื˜, ื’ืœื™ื™ึทื›ืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ื•ื•ืขืจืกื™ืข Kubernetes), ื–ื™ื ื˜ ื“ื™ ืœืขืฆื˜ืข ืกื˜ืึทื‘ื™ืœ ื•ื•ืขืจืกื™ืข Kubernetes ืื™ืฆื˜ 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
      

  2. ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’ ืื•ืŸ ืึทืงื˜ืึทื•ื•ื™ื™ืฉืึทืŸ Kubernetes.
    • ืœืึธืžื™ืจ ืœื™ื™ื’ืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™:
      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
      

      ืื™ืฆื˜ ืžื™ืจ ืงืขื ืขืŸ ื™ื ืกื˜ืึทืœื™ืจืŸ Kubernetes (ื•ื•ืขืจืกื™ืข 1.18, ื•ื•ื™ ื“ืขืจืžืื ื˜ ืื•ื™ื‘ืŸ):

      dnf install -y kubelet-1.18* kubeadm-1.18* kubectl-1.18* --disableexcludes=kubernetes

    • ื“ื™ ืจื’ืข ื•ื•ื™ื›ื˜ื™ืง ื ื•ืึทื ืก: ื–ื™ื ื˜ ืžื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื ื•ืฆืŸ ืึท ื“ื™ื™ืžืึทืŸ ื“ืึธืงืงืขืจ, ืึธื‘ืขืจ ืžื™ืจ ื ื•ืฆืŸ ื“ื™ ื“ื™ื™ืžืึทืŸ CRI-O, ืื™ื™ื“ืขืจ ืงืึทื˜ืขืจ ืื•ืŸ ื™ื ื™ื˜ื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ Kubernetes ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืžืึทื›ืŸ ื“ื™ ืฆื•ื ืขืžืขืŸ ืกืขื˜ื˜ื™ื ื’ืก ืื™ืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืข /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
      

      ื–ื™ื™ื˜ ื–ื™ื›ืขืจ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ื“ื™ ืงื ื•ื™ืœ "ืงื•ื‘ืขืึทื“ื ืคืึทืจื‘ื™ื ื“ืŸ ...", ื•ื•ืึธืก ืื™ืจ ื–ืขื ื˜ ื’ืขื‘ืขื˜ืŸ ืฆื• ื ื•ืฆืŸ ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜, ืึธื“ืขืจ ืœืคึผื—ื•ืช ื“ื™ ืกืคึผืขืกื™ืคื™ืขื“ ื˜ืึธืงืขื ืก.

    • ืœืึธืžื™ืจ ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ ืคึผืœื•ื’ื™ืŸ (CNI) ืคึฟืึทืจ ื“ื™ ืคึผืึธื“ ื ืขืฅ. ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ื ื™ืฆืŸ ืงืึทืœื™ืงืึธ. ืขืคืฉืขืจ ืžืขืจ ืคืึธืœืงืก ืคืœืึทื ืึทืœ ื”ืื˜ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ื™ืฉื•ื– ืžื™ื˜ ื ืคื˜ืึทื‘ืœืขืก, ื™ื ืื•ืŸ ืงืึทืœื™ืงืึธ - ื“ื™ ื‘ืœื•ื™ื– CNI ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืจืขืงืึทืžืขื ื“ื™ื“ ืื•ืŸ ื’ืึธืจ ื˜ืขืกื˜ืขื“ ื“ื•ืจืš ื“ื™ ืคึผืจื•ื™ืขืงื˜ Kubernetes:
      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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’