CRI-O ut a replacement pro Docker sicut runtime environment pro Kubernetes: setup in CentOS 8

Salve! Nomen meum est Sergey, DevOps sum apud Surf. DevOps apud Surf intendit non solum commercium inter specialitas et processus operis integrare constituere, sed etiam technologias currentes ad active investigare et ad effectum deducendi in proprio infrastructura et in infrastructura emptoris.

Infra pauca loquar de mutationibus in acervo technologico pro vasis quos invenimus dum studemus distributionem CentOS 8 et quid sit CRI-O et quam cito statuat ambitum exsecutabile Kubernetes.

CRI-O ut a replacement pro Docker sicut runtime environment pro Kubernetes: setup in CentOS 8

Cur Docker in CentOS 8 non continetur?

Post installing major solvo tardus RHEL 8 aut CentOS 8 Non possum non animadvertere: hae distributiones ac repositoria officialia applicationem non continent Docker, quod adstat et officianter repone fasciculis podman, Buildah (Praesens in distributione per default) et CRI-O. Hoc est debitum ad exsecutionem signorum enucleatorum, inter alia, per Rubrum Hat ut pars inceptiva Open Continentis (OCI) propositi.

Propositum OCI, quod est pars Fundationis Linux, signa industriae apertae creare est pro continentibus formas et runtimes quae plures simul difficultates solvunt. Uno modo, non contradicebant philosophiae Linux (exempli gratia in parte qua unumquodque institutum ageret unam actionem; Docker est genus omnium in unum iungendum). Secundo, omnes defectus in programmate existentes poterant tollere Docker. Tertio, plene compatibles essent cum negotiis necessariis ad suggesta commercialia ducendi ad applicationes disponendas, administrandas ac serviendas applicationes continentis (exempli gratia, Red Hat OpenShift).

defectuum oeconomicorum Docker ac commoda novae programmatis iam in speciali descripta sunt hoc articulumac accurata descriptio totius acervi programmatum intra OCI propositi eiusque architecturae notae in documentis officialibus et articulis ab ipso Red Hat (non male. articulus in Red Hat blog) and in tertia-pars reviews.

Refert notare quid elementa functionis propositae ACERVUS habeant:

  • podman - direct commercium cum vasis et imaginem repositionis per processum runC;
  • Buildah β€” ecclesia et imagines imposuisti in registro;
  • CRI-O - ambitus exsecutabile pro orchestratione continens systemata (exempli gratia, Kubernetes).

Cogitationem generalem commercii inter partes acervi intelligere puto, nexum schematis hic praebere expedit. Kubernetes c runC et humilis-gradu per libraries CRI-O:

CRI-O ut a replacement pro Docker sicut runtime environment pro Kubernetes: setup in CentOS 8

CRI-O ΠΈ Kubernetes eidem inhaerere cycli emissio et firmamentum (compatibilitas matrix valde simplex est: major versions Kubernetes ΠΈ CRI-O coincidunt), et hoc, attentis focus in plena et comprehensiva probatione operationis hujus acervi per tincidunt, nobis datur ius exspectandum maximam stabilitatem obtinendam in operando sub quovis usu missionum (relativa levitas etiam hic prodest. CRI-O comparari Docker ex proposito limitationis functionality).

Cum install Kubernetes "via recta" (secundum OCI, sane) utens CRI-O on CentOS 8 Minores nonnullas difficultates invenimus, quas tamen feliciter superavimus. Laetus ero tibi communicare institutionem et conformationem instructionum, quae in summa circiter 10 minuta capient.

Quomodo explicandi Kubernetes in CentOS 8 utendo CRI-O compage?

PRAEREQUISITIS: praesentia saltem unius exercitus (2 coros, 4 GB RAM, saltem 15 GB repono) cum installed CentOS 8 (servo" institutionem profile commendatur), tum viscus pro eo in DNS locali (sicut in novissima recurrendum, per ingressum in /etc/exercitus impetrare potes). Et ne obliviscaris disable VERTO.

Omnes operationes exercitus in usu radicis exercemus, diligenter.

  1. In primo gradu OS, dependentias CRI-O praevias instituere et configurare.
    • Sit scriptor update in OS:
      dnf -y update
      

    • Deinde necesse est murum ac SELinux configurare. Hic omnia ex ambitu pendent in quo exercitus noster vel exercitus laborabit. Firewall vel constituere potes secundum commendationem a documentumaut, si in retis creditis vel firewall tertia factione uteris, zonam default muta ad fidem faciendam vel ad firewall averte:
      firewall-cmd --set-default-zone trusted
      
      firewall-cmd --reload

      Ad averte firewall hoc uti potes imperio:

      systemctl disable --now firewalld
      

      SELinux verti debet vel ad modum "permissivum":

      setenforce 0
      
      sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

    • Onerate nuclei necessarii modulorum et fasciculorum, configurare schedulam automaticam onerationem "br_netfilter" moduli ad systematis satus:
      modprobe overlay
      
      modprobe br_netfilter
      
      echo "br_netfilter" >> /etc/modules-load.d/br_netfilter.conf
      
      dnf -y install iproute-tc
      

    • Ut activate conletum procuret et rectam negotiationis processus, opportunis occasus faciemus:
      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
      

      applicare occasus factus est:

      sysctl --system

    • posuit requiritur versionem CRI-O (Maior versio CRI-Out iam dictum est, requiritur versionem congruit Kubernetes) , cum tardus poema firmum Kubernetes currently 1.18:
      export REQUIRED_VERSION=1.18
      

      repositoria necessaria adde:

      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

    • nunc install possumus CRI-O:
      dnf -y install cri-o
      

      Attende primum nuance quod in processu institutionis invenimus: debes figuram emendare CRI-O antequam servitium incipiant, cum pars conmon quaesita alium locum habet quam definitum;

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

      Nunc potes movere et daemonem incipere CRI-O:

      systemctl enable --now crio
      

      Possis daemonem status reprehendo:

      systemctl status crio
      

  2. Institutionem et activation Kubernetes.
    • Addamus repositio requiritur:
      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
      

      Nunc possumus install Kubernetes (versio 1.18, de quo supra);

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

    • Secunda momenti nuance: quia daemone non utimur Dockersed daemonio utimur CRI-OPriusquam launch et initialization Kubernetes necesse est ut opportunitates occasus in file configurationis /var/lib/kubelet/config.yaml reddere debes, cum primum directorium optatum creasti:
      mkdir /var/lib/kubelet
      
      cat <<EOF > /var/lib/kubelet/config.yaml
      apiVersion: kubelet.config.k8s.io/v1beta1
      kind: KubeletConfiguration
      cgroupDriver: systemd
      EOF

    • Tertium momentum quod inter institutionem convenimus: non obstante quod usus exactoris indicavimus cgroup, eiusque configurationem per rationes latas cubelet exstinguitur (sicut in documentis diserte habetur), argumenta tabella addere oportet, alioquin glomus noster initialized non erit;
      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

    • Nunc daemonem movere possumus cubelet:
      sudo systemctl enable --now kubelet
      

      Ad customize control-planum aut illud operatur, lymphaticorum in minutis, vos can utor hoc scriptum.

  3. Tempus est botrum nostrum initialize.
    • Botrus initialize, currite imperium;
      kubeadm init --pod-network-cidr=10.244.0.0/16
      

      Certo scribere mandatum ut botrum iungere "kubeadm iungere ...", quo rogaris uti in fine output, vel saltem signa certa.

    • Plugin (CNI) instituamus ad modum retis Pod. Commendo uti Calico. Fortasse magis popularis flannel habet convenientiam rebus cum nftables, et Calico - unicum CNI exsecutionem commendatam et plene probatam ab incepto Kubernetes:
      kubectl --kubeconfig /etc/kubernetes/admin.conf apply -f https://docs.projectcalico.org/v3.15/manifests/calico.yaml 

    • Nodi operarium cum botro nostro coniungere, necesse est illum configurare secundum instructiones 1 et 2, seu usus scriptum, deinde praeceptum a "kubeadm init..." output, quem in priore gradu scripsimus, currite:
      kubeadm join $CONTROL_PLANE_ADDRESS:6443 --token $TOKEN 
          --discovery-token-ca-cert-hash $TOKEN_HASH

    • Sit scriptor reprehendo quod botrus noster initialized est et incepit opus:
      kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
      

    Paratus! Iam potes exercitum payloads in K8s botrum portassent.

Quod nos expectat praemisit?

Spero quod mandata tua superis adiuvisti, nisi te aliquandiu et nervis.
Eventus processuum industriae incurrentium saepe pendet ex quo accipiuntur mole finium utentium et tincidunt aliarum programmatum in ambitu respondens. Nondum plane liquet quid inceptis OCI in paucis annis ducent, sed cum voluptate vigilemus. Nunc sententiam tuam in commentis communicare potes.

Subsisto tuned!

Hic articulus gratiae sequentibus fontes apparuit;



Source: www.habr.com