CentOS 8 -ב Kubernetes לוכשא ןיקתהל דציכ


.Docker לש הנקתהה ביבס םיבבוס רקיעב ,הלא םייוניש .םייוניש המכ שי ןאכ ךילהתל ךא ,(ןאכ רובעל ולכות ותואש) CentOS 7 לש הזל טעמכ המוד CentOS 8 -ב Kubernetes לוכשא תנקתה ךילהת

.לדחמ תרירבכ רדגומה תוליבחה רגאממ תעכ הרסוה הניגעה תליבח ,תמאה ןעמל .Redhat לש םילכ םהש buildah -ו podman ידי לע תעכ ףלחוה ןגעה ,(RHEL 8 הבחרהבו) CentOS 8 -מ לחה

.םש רתונ םיעבשומה רבח ךא ,סטנרבוק תוביבסב הציר תעב רתוי הבר תושימג עיצהל חיטבמ ןמדופ .ןומדב ךרוצ אלל ןתלעפהלו הניגעה תונומתל תומיאת לע רומשל ליבקמבו ,תודחוימ תואשרהב ךרוצ אלל ,תולוכמב שומי

.ונלש תולוכמל ןמדופב שמתשנו המוד הנקתה לע םג רובענ רתוי רחואמ רמאמב .(הליהקה תרודהמ) Docker-CE לע תלעופה ,CentOS 8 תמרופטלפ לע Kubernetes תנקתה ךילהת תא רובענ הז רמאמל

    .םיתמצהמ דחא ףאב םיהז םניא MAC -ה תבותכו Product_UUID -ש רשאל ץלמומ ןכל .תוהז MAC תובותכ לולכל תויושע תוילאוטריו תונוכמ םימיוסמ םיידוחיי םירקמב םלוא ,תוידוחיי MAC תובותכ םע םיעיגמ םיתמצה ב

    Kubernetes לשכיהל לולע הנקתהה ךילהת ,תמוצ לכל םיידוחיי םניא הלא םיכרע םא .לוכשאב םיתמצה תא ידוחיי ןפואב תוהזל ידכ הלא םיכרעב שמתשמ.

    .האוושהו תשרה קשממ לש MAC -ה תבותכ תקידבל

    # ip link
    

    .האבה הדוקפה תא לעפה ,האוושהו ךירדמ_רצומה תא קודבל ידכ

    # cat /sys/class/dmi/id/product_uuid 
    

    .הככ הארית ונלש תיגולה הרוטקטיכראה ,וז הנקתה ףוסב .םידבועה יתמצב טולשי Master-Node -ש ךכ תננכותמ ונלש הנקתהה

    .(רשקתמ kubectl CLI -ה ותיאש) API -ה תרש תאו לוכשאה לש םינותנה דסמ תא הליעפמו הרקבה רושימכ ללכ ךרדב תלעופ וז הנוכמ - ישאר תמוצ

    :ךכ ךרעב האריי םיתמצה 3 לעב Kubernetes לוכשא

    Master-Node -ב Kubernetes לוכשא תנקתה

    .Docker-CE -ב שמתשנ ,רומאכ .לכימ עונמל קקדזת ,דובעי סטנרבוקש ידכ

    .CentOS 8 Master-Node -ב ועצובי םיאבה תודסומה

    .etc/hosts/ץבוקב DNS -ה תא ןכדעו תכרעמה חראמ םש תא רדגה ,ךלש CentOS 8 Master-Node -ב

    # hostnamectl set-hostname master-node
    # cat <<EOF>> /etc/hosts
    192.168.0.47 master-node
    192.168.0.48 node-1 worker-node-1
    192.168.0.49 node-2 worker-node-2
    EOF
    

    .ping הדוקפה תועצמאב הכלהכ לעופ ךלש ןכדועמה חראמה ץבוק םא קודבל ידכ 2- דבועה תמוצה תאו 1- דבועה תמוצה תא גניפ ,ןכמ רחאל

    # ping 192.168.0.48
    # ping 192.168.0.49
    

    .םירחא םיתורישו םידופ תותשרל השורדה ,תחראמה םיצבקה תכרעמל תשגל תולוכמל רשפאל ידכ שרדנ הזש ןוויכמ ,Selinux תא תבשה ,ןכמ רחאל

    # setenforce 0
    

    .שדחמ לעפהו האבה הדוקפב שמתשה ,ןיטולחל ותוא תיבשהל ידכ .אבה לוחתאל דע SELinux השעמל לטבמש המ ,ינריתמל SELinux השעמל הרידגמ 0 -ל setenforce תרדגה

    # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
    # reboot
    

    Kubernetes ל תושיגנ תויהל תוכירצ הלא תואיציו השיגו תרושקת ךרוצל תונוש תואיציב שומיש השוע- Kubernetes שאה תמוח ידי לע תולבגומ תויהל אלו.

    .תואיציב שאה תמוח יללכ תא רדגה

    # firewall-cmd --permanent --add-port=6443/tcp
    # firewall-cmd --permanent --add-port=2379-2380/tcp
    # firewall-cmd --permanent --add-port=10250/tcp
    # firewall-cmd --permanent --add-port=10251/tcp
    # firewall-cmd --permanent --add-port=10252/tcp
    # firewall-cmd --permanent --add-port=10255/tcp
    # firewall-cmd --reload
    # modprobe br_netfilter
    # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
    

    .dnf config-manager לש האבה הדוקפה תועצמאב לדחמ תרירבכ תורדגומה תוליבחה תמישרב אצמנ אל רבכ אוהש ןוויכמ Docker -ה רגאמ תא הליחת ףיסוהל םכילע היהי

    # dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
    

    .תשרל םיפרוצמ םיצבק דעו הכומנ המרב ןוסחא דעו חוקיפו לכימ עוציב דעו ןוסחאו תונומת תרבעהמ ,הלש תחראמה תכרעמה לש םלשה הלוכמה ייח רוזחמ תא להנמש ןומדכ הנימזה containerd.io תליבח תא םג ןקתה

    # dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
    

    .docker-ce תליבח לש הנורחאה הסרגה תא ןקתה תעכ

    # dnf install docker-ce
    

    .הניגעה תוריש תא ליעפהלו ליעפהל ךתורשפאב תעכ

    # systemctl enable docker
    # systemctl start docker
    

    .CentOS 8 -ב לדחמ תרירבכ םינקתומ םניא םהש ןוויכמ ינדי ןפואב Kubernetes ירגאמ ףיסוהל ךילע היהי ,ןכמ רחאל

    # cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
    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
    EOF
    

    Kubeadm לוכשא לחתאל ךל רזוע Kubernetes םע .תוצלמומ הדובע תוטישל םאותה אמייק רב ילמינימ kubeadm, לש תומיאתה ינחבמ תא רובעל ךירצ ךלש לוכשאה Kubernetes.

    Kubeadm ינומיסא לוהינו רוחאל גורדש ,םיגורדש ןוגכ ,םירחא תולוכשא לש םייח רוזחמ תויצקנופב םג ךמות bootstrap. Kubeadm ומכ םירחא רומזת ילכ םע בולישל תיתודידי םג Ansible ו- Terraform.

    .kubeadm תליבח תא ןיקתהל לכות ,תעכ ןכומ הליבחה ופיר םע

    # dnf install kubeadm -y 
    

    .ותוא לעפהו תורישה תא לעפה ,החלצהב הנקתהה םויס םע

    # systemctl enable kubelet
    # systemctl start kubelet
    

    .לוכשאה תרקב רושימ יביכר תא ןיקתמו דירומ זאו kubeadm init .תואיגשמ האיציו תורהזא תופשוח הלא תומידקמ תוקידב .Kubernetes תלעפהל הנכומ הנוכמהש חיטבהל ידכ תומידקמ תוקידב לש הרדס עצבי לוחתאה ךי

    ."\ kubeadm init"\הדוקפה תא ץירהל ידכ הפלחהה תא תיבשהל ךילע ,ןכ ינפל ךא ,Kubernetes רטסאמ תא לחתאל ןמזה עיגה וישכע

    # swapoff -a
    

    .גצומש יפכ "\ kubeadm init"\הדוקפה ידי לע טלשנה ןיטולחל יטמוטוא ךילהת אוה Kubernetes לש רטסאמה לוחתא

    # kubeadm init
    

    .רתוי רחואמ םידבועה םיתמצב וז הדוקפ ליעפהל ונשרדנ ןכש ,והשלכ םוקמב התוא ןסחאו האבה הדוקפה תא קתעה ,ןכמ רחאל

    kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5  \ --discovery-token-ca-cert-hash ha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf7

    .ךכ הארית םכלש תיפוסה הדוקפהו '\' ותה תא ריסהל םכילע ,תואיגשמ ענמיהל ידכ ןכל ,ורבעוהש םינועיטה יבגל תואיגש ךילשהל היושע הלעמלש הדוקפה םימעפל :פיט

    # kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 –discovery token-ca-cert-hash sha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf7
    

    .גצומש יפכ sudo שמתשמ תועצמאב לוכשאה תא ליעפהל םג לוכי התא .שרושה שמתשמב שמתשנ ונלש שיחרתב .לוכשאב שמתשהל ליחתהל ךלש שמתשמל רשפאל ךילע ,Kubernetes לש החלצהה לוחתא רחאל

    :לעפה ,שרושב שמתשהל ידכ

    # mkdir -p $HOME/.kube
    # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    # chown $(id -u):$(id -g) $HOME/.kube/config
    

    :לעפה ,ודוס לעפומ שמתשמב שמתשהל ידכ

    $ mkdir -p $HOME/.kube
    $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    $ sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    .תלעפומ kubectl הדוקפה יכ רשא תעכ

    # kubectl get nodes
    

    .לוכשאל םידופה תשר תא סורפנ אל ןיידעש איה ךכל הביסה .'NotReady' אוה ישארה תמוצ לש בצמהש הארת הז עגרב

    .לימרתה ינפ לע תוירושיק רשפאל דעונ אוה .תיחכונה תמוצה תשר יבג לע תסרפנש ,לוכשאה לש לעה תשר איה דופה תשר

    .ןאכ קודב אנא ,תופסונ תויורשפא תוארל ךנוצרב םא .ונרובע רדהנ הזו לימרת לכל תחא IP תבותכ קפסמ אוהו ףסונ דוק וא הרוצת םוש שרוד וניאש Weavenet ףסותב שמתשנ ,הטושפ רתויש המכ ונלש הנקתהה לע רומשל

    .םידופה תשר תרדגה תלבקל תובושח ויהי הלא תודוקפ

    # export kubever=$(kubectl version | base64 | tr -d '\n')
    # kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
    

    .'ןכומ' תויהל ךירצ אוה ,ךלש ישארה תמוצה סוטטס תא קדוב התא םא וישכע

    # kubectl get nodes
    

    .לוכשאל דבועה יתמצ תא םיפיסומ ונא ,ןכמ רחאל

    Kubernetes לוכשאל םידבוע לש םיתמצ תפסוה

    .Kubernetes לוכשאל ותופרטצה תעב םילעופ תמוצ לכב ועצובי תואבה תוארוהה

    .etc/hosts/ץבוקל חראמה יכרע תא ףסוה זאו דבועה node-2 -בו ךלש דבועה node-1 -ב חראמה םש תא רדגה תישאר

    # hostnamectl set-hostname 'node-1'
    # cat <<EOF>> /etc/hosts
    192.168.0.47 master-node
    192.168.0.48 node-1 worker-node-1
    192.168.0.49 node-2 worker-node-2
    EOF
    

    .ping תדוקפ תועצמאב רדסב דבוע ךלש ןכדועמה חראמה ץבוקש רשאל ידכ ךלש םידבועה תמוצמ ךלש שארה תמוצ תא גניפ ,ןכמ רחאל

    # 192.168.0.47
    

    .ךלש שאה תמוח יללכ תא ןכדעו SElinux תא תבשה ,ןכמ רחאל

    # setenforce 0
    # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
    # firewall-cmd --permanent --add-port=6783/tcp
    # firewall-cmd --permanent --add-port=10250/tcp
    # firewall-cmd --permanent --add-port=10255/tcp
    # firewall-cmd --permanent --add-port=30000-32767/tcp
    # firewall-cmd --reload
    # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
    

    .DNF לש הרוצתה להנמ תועצמאב Docker -ה רגאמ תא הליחת ףסוה

    # dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
    

    .containerd.io הליבחה תא ףסוה ,ןכמ רחאל

    # dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
    

    .docker-ce לש הנורחאה הסרגה תא ןקתה ,הלא תוליבח יתש תנקתה םע

    # dnf install docker-ce
    

    .הניגעה תוריש תא לעפהו לעפה

    # systemctl enable docker
    # systemctl start docker
    

    .CentOS 8 -ב שארמ םינקתומ םניא םהש ןוויכמ ינדי ןפואב Kubernetes ירגאמ ףיסוהל ךילע היהי

    # cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
    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
    EOF
    

    .kubeadm תא ןיקתהל ולכות ,תעכ ןכומ הליבחה ופיר רשאכ

    # dnf install kubeadm -y 
    

    .תורישה תא לעפהו לחתה

    # systemctl enable kubelet
    # systemctl start kubelet
    

    .והשפיא ותוא קיתעמ תייה םא ךלש 2- תמוצלו 1 תמוצל ותוא קיבדהלו קיתעהל לוכי התא .לוכשאל ףרטצהל ידכ kubeadm init -ה רציש ןומיסאהמ םישרוד ונא תעכ

    # kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5  --discovery-token-ca-cert-hash sha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314683478hjmf78
    

    .האבה הדוקפה תועצמאב לוכשאל ופרטצה 2 דבועה תמוצו 1- דבועה תמוצ םא אדוו ךלש באה תמוצל רוזח ,הנורחאה הרושב עצוהש יפכ

    # kubectl get nodes
    

    .CentOS 8 -ב Kubernetes לוכשא החלצהב תסרפ תעכ ,הז בלשב .ישארה תמוצב ןכומ בצמב node-2 -ו node-1 תא תוארל רומא התא ,ןכ םא ,החלצהב םילעופ םיבלשה לכ םא

    Kubernetes לוכשאב Nginx תא סורפל דציכ :אורקל ץלמומ

    .ספאמ שדחמ ותוא רוציל ךרוצ היהיש ןכתייו םינותנ דבאל לולע ךלש לוכשאה ,לשכנ ישארה תמוצה םא ,הזככו ,דיחי דיחי תמוצ שי ןאכ ונרציש לוכשאל

    .דואמ הנימז הנקתה לע ץילממ ינא ,וז הביסמ