CRI-O እንደ Docker ምትክ ለኩበርኔትስ የስራ ጊዜ፡ በCentOS 8 ላይ ማዋቀር

ሀሎ! ስሜ ሰርጌይ ነው፣ እኔ በሰርፍ ላይ ዴቭኦፕስ ነኝ። በሰርፍ የሚገኘው የዴቭኦፕስ ዲፓርትመንት ዓላማው በልዩ ባለሙያዎች መካከል መስተጋብር መፍጠር እና የስራ ሂደቶችን ማዋሃድ ብቻ ሳይሆን ጠቃሚ ቴክኖሎጂዎችን በራሳቸው መሠረተ ልማት እና በደንበኛ መሠረተ ልማት ውስጥ በንቃት መመርመር እና መተግበር ነው።

ከዚህ በታች ስለ ስርጭቱ በማጥናት ላይ ስለተገናኘን የእቃ ማጠራቀሚያዎች የቴክኖሎጂ ቁልል ለውጦች ትንሽ እናገራለሁ. CentOS 8 እና ስለ ምን እንደሆነ CRI-O እና ከእሱ ጋር በፍጥነት የሚተገበር አካባቢን እንዴት ማዘጋጀት እንደሚቻል ኩባንያቶች.

CRI-O እንደ Docker ምትክ ለኩበርኔትስ የስራ ጊዜ፡ በCentOS 8 ላይ ማዋቀር

ለምንድን ነው ዶከር ከ CentOS 8 መደበኛ ስርጭት ጠፍቷል

የቅርብ ጊዜ ዋና ልቀቶችን ከጫኑ በኋላ RHEL 8 ወይም CentOS 8 ሊታለፍ የማይገባ፡ እነዚህ ስርጭቶች እና ኦፊሴላዊ ማከማቻዎች ማመልከቻው ጠፍተዋል። Docker, በርዕዮተ ዓለም እና በተግባራዊነት ፓኬጆችን የሚተካ ፖድማን, ግንባታ (በነባሪ በስርጭቱ ውስጥ ይገኛል) እና CRI-O. ይህ የሆነበት ምክንያት በቀይ ኮፍያ የተሰሩ ደረጃዎችን ተግባራዊ በመተግበሩ እንደ የክፍት ኮንቴይነር ኢኒሼቲቭ (OCI) ፕሮጀክት አካል ነው።

የሊኑክስ ፋውንዴሽን አካል የሆነው የ OCI ግብ በአንድ ጊዜ በርካታ ችግሮችን የሚፈቱ ክፍት የኢንዱስትሪ ስታንዳርዶችን ለኮንቴይነር ቅርጸቶች እና ሊተገበሩ የሚችሉ አካባቢዎች መፍጠር ነው። በመጀመሪያ ፣ የሊኑክስን ፍልስፍና አልተቃረኑም (ለምሳሌ ፣ በዚህ ክፍል ውስጥ እያንዳንዱ ፕሮግራም አንድ እርምጃ ማከናወን አለበት ፣ እና Docker ሁሉንም በአንድ ላይ የማጣመር አይነት ነው)። በሁለተኛ ደረጃ, በሶፍትዌሩ ውስጥ ያሉትን ሁሉንም ድክመቶች ማስወገድ እንችላለን Docker. በሶስተኛ ደረጃ፣ በኮንቴይነር የተያዙ አፕሊኬሽኖችን ለማሰማራት፣ ለማስተዳደር እና ለማቆየት (ለምሳሌ፣ Red Hat OpenShift) ዋና ዋና የንግድ መድረኮች ካስቀመጧቸው የንግድ መስፈርቶች ጋር ሙሉ በሙሉ ይጣጣማሉ።

ችግሮች Docker እና የአዲሱ ሶፍትዌር ጥቅሞች ቀደም ሲል በተወሰነ ዝርዝር ውስጥ ተገልጸዋል ይህ ጽሑፍእና አጠቃላይ የሶፍትዌር ቁልል እንዴት እንደ OCI ፕሮጀክት አካል እና የስነ-ህንፃ ባህሪያቱ እንዴት እንደሚገኝ የሚገልጽ ዝርዝር መግለጫ ከሬድ ኮፍያ እራሱ በወጣው ኦፊሴላዊ ሰነዶች እና መጣጥፎች ውስጥ (ጥሩ) ጽሑፍ በቀይ ኮፍያ ብሎግ) እና በሶስተኛ ወገን ግምገማዎች.

የታቀደው ቁልል አካላት ምን አይነት ተግባር እንዳላቸው ልብ ማለት ያስፈልጋል፡-

  • ፖድማን - በ runC ሂደት ከእቃ መያዣዎች እና የምስል ማከማቻ ጋር ቀጥተኛ ግንኙነት;
  • ግንባታ - ወደ ምስሎች መዝገብ ውስጥ መሰብሰብ እና መጫን;
  • CRI-O - ለኮንቴይነር ኦርኬስትራ ስርዓቶች (ለምሳሌ ኩበርኔትስ) የሩጫ ጊዜ አካባቢ።

እኔ እንደማስበው በክምችቱ ክፍሎች መካከል ያለውን አጠቃላይ የግንኙነት መርሃ ግብር ለመረዳት የግንኙነት ንድፍ እዚህ መስጠት ተገቢ ነው ። ኩባንያቶች c runC እና ዝቅተኛ ደረጃ ቤተ-መጽሐፍት በመጠቀም CRI-O:

CRI-O እንደ Docker ምትክ ለኩበርኔትስ የስራ ጊዜ፡ በCentOS 8 ላይ ማዋቀር

CRI-O и ኩባንያቶች ተመሳሳዩን የመልቀቂያ እና የድጋፍ ዑደት ይከተሉ (የተኳኋኝነት ማትሪክስ በጣም ቀላል ነው-ዋና ዋና ልቀቶች ኩባንያቶች и CRI-O coincide) እና ይህ በገንቢዎች የዚህን ቁልል ሥራ ሙሉ እና አጠቃላይ ሙከራ ላይ ትኩረትን ከግምት ውስጥ በማስገባት በማንኛውም የአጠቃቀም ሁኔታዎች ውስጥ በሥራ ላይ ከፍተኛውን ሊደረስበት የሚችል መረጋጋት የመጠበቅ መብት ይሰጠናል (አንፃራዊ ቀላልነት እዚህም ጠቃሚ ነው)። CRI-O ጋር ሲነፃፀር Docker በተግባራዊነት ዓላማ ውስንነት ምክንያት)።

ሲጫኑ ኩባንያቶች "በትክክለኛው መንገድ" መንገድ (እንደ OCI, በእርግጥ) በመጠቀም CRI-O ላይ CentOS 8 አንዳንድ ጥቃቅን ችግሮች አጋጥመውናል፣ ሆኖም ግን፣ በተሳካ ሁኔታ አሸንፈናል። የመጫኛ እና የማዋቀሪያ መመሪያዎችን ለእርስዎ በማካፈል ደስ ይለኛል, በአጠቃላይ ቢበዛ 10 ደቂቃዎችን ይወስዳል.

CRI-O Environmentን በመጠቀም Kubernetes በ CentOS 8 ላይ እንዴት ማሰማራት እንደሚቻል

ቅድመ ሁኔታዎች፡ ቢያንስ አንድ አስተናጋጅ (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, ቀደም ሲል እንደተጠቀሰው, ከሚፈለገው ስሪት ጋር ተመሳሳይ ናቸው ኩባንያቶች) ከቅርብ ጊዜው የተረጋጋ ስሪት ጀምሮ ኩባንያቶች በአሁኑ ጊዜ 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. መጫን እና ማግበር ኩባንያቶች.
    • የሚፈለገውን ማከማቻ አክል፡
      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

    • በመጫን ጊዜ የሚያጋጥመን ሦስተኛው አስፈላጊ ነጥብ: ምንም እንኳን ጥቅም ላይ የዋለውን አሽከርካሪ ጠቁመን ቢሆንም ቡድን, እና ውቅር በክርክር አልፏል kubelet ጊዜው ያለፈበት (በሰነዱ ውስጥ በቀጥታ የተገለጸው)፣ በፋይሉ ላይ ክርክሮችን ማከል አለብን፣ ያለበለዚያ ክላስተርችን አይጀመርም፡
      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

    • አሁን ዴሞንን ማንቃት እንችላለን kubelet:
      sudo systemctl enable --now kubelet
      

      ለማበጀት መቆጣጠሪያ-አውሮፕላን ወይም ሠራተኛ አንጓዎች በደቂቃዎች ውስጥ, መጠቀም ይችላሉ ይህ ስክሪፕት.

  3. ክላስተርን የምንጀምርበት ጊዜ ነው።
    • ክላስተርን ለመጀመር ትዕዛዙን ያሂዱ፡-
      kubeadm init --pod-network-cidr=10.244.0.0/16
      

      በክላስተር "kubeadm join ..." በውጤቱ መጨረሻ ላይ የሚቀርበውን ወይም ቢያንስ የተገለጹትን ምልክቶች ለመቀላቀል ትዕዛዙን መፃፍዎን ያረጋግጡ።

    • ለፖድ አውታረመረብ ተሰኪውን (CNI) ይጫኑ። እንዲጠቀሙ እመክራለሁ። ካሊኮ. የበለጠ ታዋቂ ሊሆን ይችላል። Flannel ጋር የተኳኋኝነት ችግሮች አሉት 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 ፕሮጀክት
  • የቀይ ኮፍያ ብሎግ መጣጥፎች፡- ይሄኛው, ይሄ እና ሌሎች ብዙ



ምንጭ: hab.com

አስተያየት ያክሉ