Bir yükleme işlemi Kubernetes Kümesi üzerinde CentOS 8 neredeyse buna benzer CentOS7 (geçebileceğiniz Burada), ancak buradaki işlemde birkaç değişiklik var. Bu değişiklikler, çoğunlukla kurulumun etrafında döner. Liman işçisi.
Den başlayarak CentOS 8 (ve uzantı olarak RHEL 8), liman işçisi şimdi doğal olarak değiştirildi pod adam ve yapı hangi araçlar Kırmızı şapka. Nitekim, docker paketi artık varsayılan paket deposundan kaldırılmıştır.
Bu hareketle, Kırmızı şapka ekip, özel izinlere ihtiyaç duymadan konteyner oluşturma ve kullanma sürecini basitleştirmeyi amaçlar, aynı zamanda, docker görüntüleri ile uyumluluğu sağlamak ve bunları herhangi bir şeytan. pod adam çalışırken daha fazla esneklik sunmayı vaat ediyor Kubernet'ler ortamlar, ancak jüri orada kalır.
Bu makale için yükleme işlemini gerçekleştireceğiz Kubernet'ler üzerinde CentOS 8 platformu, üzerinde çalışıyor Docker-CE (Topluluk Sürümü). Daha sonraki bir makalede, kullanarak benzer bir kurulumdan geçeceğiz. pod adam konteynerlerimiz için.
Çoğu düğüm genellikle benzersiz MAC adresleri, ancak bazı benzersiz durumlarda, bazıları Sanal makineler aynı MAC adreslerine sahip olabilir. Bu nedenle, aşağıdakileri onaylamanız önerilir: Ürün_UUID ve MAC adres, düğümlerin hiçbirinde aynı değildir.
Kubernet'ler kümedeki düğümleri benzersiz bir şekilde tanımlamak için bu değerleri kullanır. Bu değerler her düğüm için benzersiz değilse, yükleme işlemi başarısız olabilir.
Ağ arayüzünün MAC adresini kontrol etmek ve karşılaştırmak için.
#ip bağlantısı.
kontrol etmek için product_uuid ve karşılaştırın, aşağıdaki komutu çalıştırın.
# cat /sys/class/dmi/id/product_uuid
Kurulumumuz aşağıdaki özelliklere sahip olacak şekilde tasarlanmıştır: Ana Düğüm kontrol etmek Çalışan Düğümleri. Bu kurulumun sonunda mantıksal mimarimiz şöyle bir şeye benzeyecek.
Ana Düğüm – Bu makine genellikle kontrol düzlemi görevi görür ve küme veritabanını ve (kubectl CLI'nin iletişim kurduğu) API sunucusunu çalıştırır.
3 düğümümüz Kubernetes Kümesi şöyle bir şey görünecek:
İçin Kubernet'ler çalışmak için bir konteynerleştirme motoruna ihtiyacınız olacak. Belirtildiği gibi, kullanacağız Docker-CE.
Aşağıdaki kurumlarda gerçekleştirilecektir: CentOS 8 Ana Düğüm.
senin üzerinde CentOS 8 Ana Düğüm, sistem ana bilgisayar adını ayarlayın ve DNS'nizi güncelleyin. /etc/hosts dosya.
# hostnamectl set-hostname ana düğümü. # kedi <> /etc/hostlar. 192.168.0.47 ana düğüm. 192.168.0.48 düğüm-1 çalışan-düğüm-1. 192.168.0.49 düğüm-2 işçi-düğüm-2. EOF.
Ardından, pinginizi yapın işçi-düğüm-1 ve işçi-düğüm-2 kullanarak güncellenen ana bilgisayar dosyanızın düzgün çalışıp çalışmadığını kontrol etmek için ping komutu.
# ping 192.168.0.48. # ping 192.168.0.49.
Ardından, devre dışı bırak Selinux, çünkü bu, kapsayıcıların pod ağları ve diğer hizmetler tarafından ihtiyaç duyulan ana bilgisayar dosya sistemine erişmesine izin vermek için gereklidir.
# setenforce 0.
Ayar setenforce ile 0
SELinux'u etkin bir şekilde izin verene ayarlar, bu da bir sonraki yeniden başlatmaya kadar SELinux'u etkin bir şekilde devre dışı bırakır. Tamamen devre dışı bırakmak için aşağıdaki komutu kullanın ve yeniden başlatın.
# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=devre dışı/g' /etc/sysconfig/selinux. # yeniden başlat.
Kubernetes, iletişim ve erişim için çeşitli bağlantı noktalarından yararlanır ve bu bağlantı noktalarının güvenlik duvarı tarafından sınırlandırılmadan Kubernetes tarafından erişilebilir olması gerekir.
Bağlantı noktalarındaki güvenlik duvarı kurallarını yapılandırın.
# firewall-cmd --kalıcı --add-port=6443/tcp. # firewall-cmd --kalıcı --add-port=2379-2380/tcp. # firewall-cmd --kalıcı --add-port=10250/tcp. # firewall-cmd --kalıcı --add-port=10251/tcp. # firewall-cmd --kalıcı --add-port=10252/tcp. # firewall-cmd --kalıcı --add-port=10255/tcp. # güvenlik duvarı-cmd -- yeniden yükle. # modprobe br_netfilter. # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables.
eklemeniz gerekecek Liman işçisi aşağıdakileri kullanarak artık varsayılan paket listesinde olmadığı için ilk önce depo dnf yapılandırma yöneticisi emretmek.
# dnf yapılandırma yöneticisi --add-repo= https://download.docker.com/linux/centos/docker-ce.repo.
Ayrıca yükleyin containerd.io ana bilgisayar sisteminin tüm konteyner yaşam döngüsünü yöneten bir arka plan programı olarak sunulan paket, konteyner yürütmesine görüntü aktarımı ve depolama ve ağ eklerine düşük seviye depolamadan denetim ve Öte.
#dnf kurulumu https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm.
Şimdi en son sürümünü yükleyin liman işçisi paket.
# dnf docker-ce'yi kurun.
Artık docker hizmetini etkinleştirebilir ve başlatabilirsiniz.
# systemctl docker'ı etkinleştir. # systemctl docker'ı başlat.
Ardından, eklemeniz gerekecek Kubernet'ler depolar, varsayılan olarak yüklenmedikleri için manuel olarak CentOS 8.
# kedi </etc/yum.repos.d/kubernetes.repo. [kubernet'ler] isim=Kubernet'ler. bazurl= https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. etkin=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 en iyi uygulamalara uyan minimum geçerli Kubernetes kümesini önyüklemenize yardımcı olur. İle birlikte kubeadm, kümenizin Kubernetes Uygunluk testlerini geçmesi gerekir.
Kubeadm yükseltmeler, sürüm düşürme ve önyükleme belirteçlerini yönetme gibi diğer küme yaşam döngüsü işlevlerini de destekler. Kubeadm ayrıca, aşağıdakiler gibi diğer düzenleme araçlarıyla entegrasyon dostudur: cevaplayıcı ve Terraform.
Paket deposu şimdi hazır olduğunda, devam edebilir ve yükleyebilirsiniz. kubeadm paket.
# dnf kubeadm -y kurulumu
Kurulum başarıyla tamamlandığında, hizmeti etkinleştirin ve başlatın.
# systemctl kubelet'i etkinleştir. # systemctl kubelet'i başlat.
olarak hareket eden Kubernetes ustası kontrol Paneli küme için gerekli olan birkaç kritik hizmeti çalıştırır. Bu nedenle, başlatma işlemi, makinenin Kubernetes'i çalıştırmaya hazır olduğundan emin olmak için bir dizi ön kontrol yapacaktır. Bu ön kontroller uyarıları gösterir ve hatalardan çıkar. kubeadm init ardından küme kontrol düzlemi bileşenlerini indirir ve kurar.
Şimdi Kubernetes master'ı başlatma zamanı, ancak bundan önce, " çalıştırmak için takası devre dışı bırakmalısınız.kubeadm init" emretmek.
# takas -a.
başlatılıyor Kubernet'ler master, “ tarafından kontrol edilen tamamen otomatik bir süreçtir.kubeadm init" komutu gösterildiği gibi.
# kubeadm init.
Ardından, aşağıdaki komutu kopyalayın ve daha sonra bu komutu çalışan düğümlerde çalıştırmamız gerektiği için bir yerde saklayın.
kubeadm birleştirme 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash ha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc8231468
Uç: Bazen yukarıdaki komut iletilen argümanlarla ilgili hatalar verebilir, bu nedenle hatalardan kaçınmak için ‘\’
karakter ve son komutunuz şöyle görünecek.
# kubeadm 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 –discovery token-ca-cert-hash sha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc823146834
Bir kere Kubernet'ler başarıyla başlatıldığında, kullanıcınızın kümeyi kullanmaya başlamasını sağlamalısınız. Senaryomuzda kök kullanıcıyı kullanacağız. Ayrıca, gösterildiği gibi sudo kullanıcısını kullanarak kümeyi başlatabilirsiniz.
Kullanmak kök, Çalıştırmak:
# mkdir -p $HOME/.kube. # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config. # chown $(id -u):$(id -g) $HOME/.kube/config.
kullanmak için sudo etkin kullanıcı, Çalıştırmak:
$ mkdir -p $HOME/.kube. $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config. $ sudo chown $(id -u):$(id -g) $HOME/.kube/config.
Şimdi onaylayın kubectl komutu etkinleştirilir.
# kubectl düğümleri alır.
Bu anda, ana düğümün durumunun 'olduğunu göreceksiniz.Hazır değil’. Bunun nedeni, henüz pod ağını kümeye dağıtmamamızdır.
Pod Ağı, mevcut düğüm ağının üzerine dağıtılan küme için yer paylaşımlı ağdır. Pod genelinde bağlantıya izin verecek şekilde tasarlanmıştır.
Ağ kümesini dağıtmak, ihtiyaçlarınıza bağlı olarak oldukça esnek bir işlemdir ve birçok seçenek mevcuttur. Kurulumumuzu olabildiğince basit tutmak istediğimiz için kullanacağız. örgü herhangi bir yapılandırma veya ekstra kod gerektirmeyen ve bizim için harika olan her bölme için bir IP adresi sağlayan eklenti. Daha fazla seçenek görmek istiyorsanız, lütfen kontrol edin Burada.
Bu komutlar, pod ağ kurulumunu almak için önemli olacaktır.
# export kubever=$(kubectl versiyonu | base64 | tr -d '\n') # kubectl uygula -f " https://cloud.weave.works/k8s/net? k8s sürümü=$kubever"
Şimdi ana düğümünüzün durumunu kontrol ederseniz, 'Hazır’.
# kubectl düğümleri alır.
Ardından, ekliyoruz işçi düğümleri kümeye.
Aşağıdaki talimatlar her birinde gerçekleştirilecektir. işçi düğümü Kubernetes kümesine katılırken.
İlk önce ana bilgisayar adını işçi-düğüm-1 ve işçi-düğüm-2ve ardından ana bilgisayar girişlerini /etc/hosts dosya.
# hostnamectl set-hostname 'düğüm-1' # kedi <> /etc/hostlar. 192.168.0.47 ana düğüm. 192.168.0.48 düğüm-1 çalışan-düğüm-1. 192.168.0.49 düğüm-2 işçi-düğüm-2. EOF.
Ardından, pinginizi yapın ana düğüm senden işçi düğümleri kullanarak güncellenen ana bilgisayar dosyanızın düzgün çalıştığını doğrulamak için ping komutu.
# 192.168.0.47.
Ardından, devre dışı bırak SElinux ve güvenlik duvarı kurallarınızı güncelleyin.
# setenforce 0. # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=devre dışı/g' /etc/sysconfig/selinux. # firewall-cmd --kalıcı --add-port=6783/tcp. # firewall-cmd --kalıcı --add-port=10250/tcp. # firewall-cmd --kalıcı --add-port=10255/tcp. # firewall-cmd --kalıcı --add-port=30000-32767/tcp. # güvenlik duvarı-cmd -- yeniden yükle. # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables.
Önce DNF yapılandırma yöneticisini kullanarak Docker deposunu ekleyin.
# dnf yapılandırma yöneticisi --add-repo= https://download.docker.com/linux/centos/docker-ce.repo.
Ardından, ekleyin containerd.io paket.
#dnf kurulumu https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm.
Bu iki paket yüklendiğinde, en son sürümünü yükleyin. liman işçisi.
# dnf docker-ce'yi kurun.
Docker hizmetini etkinleştirin ve başlatın.
# systemctl docker'ı etkinleştir. # systemctl docker'ı başlat.
eklemeniz gerekecek Kubernet'ler depolar önceden yüklenmiş olarak gelmedikleri için manuel olarak CentOS 8.
# kedi </etc/yum.repos.d/kubernetes.repo. [kubernet'ler] isim=Kubernet'ler. bazurl= https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. etkin=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.
Paket deposu şimdi hazır olduğunda, devam edebilir ve yükleyebilirsiniz. kubeadm.
# dnf kubeadm -y kurulumu
Hizmeti başlatın ve etkinleştirin.
# systemctl kubelet'i etkinleştir. # systemctl kubelet'i başlat.
Şimdi belirteci istiyoruz kubeadm init kümeye katılmak için oluşturulur. kopyalayıp sitenize yapıştırabilirsiniz düğüm-1 ve düğüm-2 bir yere kopyalasaydınız
# kubeadm 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc8231468
Son satırda önerildiği gibi, ana düğüm ve işçi olup olmadığını doğrulayın düğüm-1 ve işçi düğümü-2 aşağıdaki komutu kullanarak kümeye katıldı.
# kubectl düğümleri alır.
Tüm adımlar başarıyla çalıştırılırsa, görmelisiniz düğüm-1 ve düğüm-2 üzerinde hazır durumda ana düğüm. Bu noktada, şu anda bir Kubernetes kümesini başarıyla dağıttınız: CentOS 8.
Önerilen Okuma: Bir Kubernetes Kümesine Nginx Nasıl Dağıtılır
Burada oluşturduğumuz kümenin tek bir ana düğümve bu nedenle, eğer ana düğüm başarısız olursa, kümeniz veri kaybedebilir ve sıfırdan yeniden oluşturulması gerekebilir.
Bu nedenle, Yüksek Derecede Kullanılabilir bir kurulum öneriyorum.