Kubernetes-klusterin asentaminen CentOS 7: een


Googlen lahjoittama Opensource-yhteisölle Kuberneteksestä on nyt tullut valittu säilönhallintatyökalu. Se pystyy hallitsemaan ja ohjaamaan paitsi telakointiaikoja myös Containers- ja Rkt-ajoaikoja.

Tyypillisessä Kubernetes-klusterissa olisi yleensä pääsolmu ja useita työntekijäsolmuja tai Minions. Työntekijäsolmuja hallitaan sitten pääsolmusta, mikä varmistaa klusterin hallinnan keskipisteestä.

On myös tärkeää mainita, että voit myös ottaa käyttöön yksisolmun Kubernetes-klusterin, jota suositellaan yleensä erittäin kevyille, ei-tuotannollisille kuormille. Tätä varten voit käyttää Minikubea, joka on työkalu, joka suorittaa yhden solmun Kubernetes-klusterin solmusi virtuaalikoneessa.

Suositeltava luku: Kubernetes-klusterin asentaminen CentOS 8: een

Tätä opetusohjelmaa varten käymme läpi monisolmuisen Kubernetes-klusteriasennuksen CentOS 7 Linuxiin. Tämä opetusohjelma on komentorivipohjainen, joten tarvitset pääsyn pääteikkunaan.

  1. Useita palvelimia, joissa on Centos 7 (1 pääsolmu, 2 työntekijäsolmua). On suositeltavaa, että pääsolmussa on vähintään 2 keskusyksikköä, vaikka tämä ei ole tiukka vaatimus.
  2. Internet-yhteys kaikissa solmuissasi. Haemme Kubernetes- ja docker-paketteja arkistosta. Samoin sinun on varmistettava, että yum-paketinhallinta on oletuksena asennettu ja että se voi noutaa paketteja etänä.
  3. Tarvitset myös pääsyn tiliin, jolla on sudo- tai root-oikeudet. Tässä opetusohjelmassa käytän juuritiliäni.

Kolmen solmun klusteri näyttää tältä:

Kubernetes-klusterin asennus Master-Nodeen

Tarvitset konttikoneen, jotta Kubernetes toimisi. Tässä asennuksessa käytämme telakointiasemaa, koska se on suosituin.

Seuraavat vaiheet suoritetaan Master-solmulla.

Määritä pääsolmussa isäntänimi ja jos sinulla ei ole DNS-palvelinta, päivitä sitten myös/etc/hosts-tiedosto.

# hostnamectl set-hostname master-node
# cat <<EOF>> /etc/hosts
10.128.0.27 master-node
10.128.0.29 node-1 worker-node-1
10.128.0.30 node-2 worker-node-2
EOF

Voit pingata työntekijä-solmu-1 ja työntekijä-solmu-2: n testaamaan ping-komennolla päivitetyn isäntätiedoston kunnon.

# ping 10.128.0.29
# ping 10.128.0.30

Poista seuraavaksi SElinux käytöstä ja päivitä palomuurisäännöt.

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

Aseta seuraavat palomuurisäännöt portteihin. Varmista, että jokainen palomuuri-cmd-komento palauttaa onnistumisen.

# 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

Sinun on lisättävä Kubernetes-arkistot manuaalisesti, koska niitä ei ole asennettu oletuksena CentOS 7: een.

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

Kun pakettivaraus on nyt valmis, voit asentaa kubeadm- ja docker-paketit.

# yum install kubeadm docker -y 

Kun asennus on valmis, ota käyttöön ja käynnistä molemmat palvelut.

# systemctl enable kubelet
# systemctl start kubelet
# systemctl enable docker
# systemctl start docker

Nyt olemme valmiita alustamaan kubernetes-masterin, mutta ennen sitä sinun on poistettava vaihtaminen käytöstä, jotta "kubeadm init" -komento voidaan suorittaa.

# swapoff -a

Kubernetes masterin alustaminen on täysin automatisoitu prosessi, jota hallitaan suorittamallasi "kubeadm init" -komennolla.

# kubeadm init

Haluat ehkä kopioida viimeisen rivin ja tallentaa sen jonnekin, koska sinun on suoritettava se työntekijän solmuissa.

kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5  \ --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41 

Vinkki: Joskus tämä komento saattaa valittaa argumenteista (argumenteista), joten muokkaa sitä virheiden välttämiseksi. Joten poistat - \\ -merkin, joka on --token -kohdan mukana, ja lopullinen komentosi näyttää tältä.

kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5  --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41

Kun Kubernetes on alustettu onnistuneesti, sinun on annettava käyttäjän aloittaa klusterin käyttö. Meidän tapauksessamme haluamme suorittaa tämän asennuksen pääkäyttäjänä, joten jatkamme näitä komentoja juurina. Voit vaihtaa haluamallesi sudo-käyttäjälle ja suorittaa alla olevan sudon avulla.

Jos haluat käyttää rootia, suorita:

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

Voit käyttää sudo-yhteensopivaa käyttäjää suorittamalla:

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

Tarkista nyt, onko kubectl-komento aktivoitu.

# kubectl get nodes

Tässä vaiheessa huomaat myös, että pääsolmun tila on ”NotReady”. Tämä johtuu siitä, että emme ole vielä ottaneet pod-verkkoa käyttöön klusterissa.

Pod-verkko on klusterin päällekkäisverkko, joka on asennettu nykyisen solmuverkon päälle. Se on suunniteltu mahdollistamaan yhteydet koko podin välillä.

Verkkoklusterin käyttöönotto on erittäin joustava prosessi tarpeistasi riippuen, ja käytettävissä on monia vaihtoehtoja. Koska haluamme pitää asennuksen mahdollisimman yksinkertaisena, käytämme Weavenet-laajennusta, joka ei vaadi kokoonpanoa tai ylimääräistä koodia ja tarjoaa yhden IP-osoitteen podia kohti, mikä on meille upea. Jos haluat nähdä lisää vaihtoehtoja, tarkista tästä.

Nämä komennot ovat tärkeitä pod-verkon asetusten saamiseksi.

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

Jos nyt tarkistat isäntäsolmun tilan, sen pitäisi olla ”Valmiina”.

# kubectl get nodes

Seuraavaksi lisätään työntekijän solmut klusteriin.

Työntekijäsolmujen määrittäminen liittymään Kubernetes-klusteriin

Seuraavat vaiheet suoritetaan työntekijän solmuissa. Nämä vaiheet tulisi suorittaa jokaisella työntekijäsolmulla, kun liityt Kubernetes-klusteriin.

Määritä työntekijä-solmu-1- ja työntekijä-solmu-2-isäntänimi ja jos sinulla ei ole DNS-palvelinta, päivitä myös pää- ja työntekijäsolmut/etc/hosts-tiedostossa.

# hostnamectl set-hostname 'node-1'
# cat <<EOF>> /etc/hosts
10.128.0.27 master-node
10.128.0.29 node-1 worker-node-1
10.128.0.30 node-2 worker-node-2
EOF

Voit pingata master-solmua testataksesi, onko päivitetty isäntätiedosto kunnossa.

Poista seuraavaksi SElinux käytöstä ja päivitä palomuurisäännöt.

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

Aseta seuraavat palomuurisäännöt portteihin. Varmista, että kaikki palomuuri-cmd-komennot palauttavat menestyksen.

# 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

Sinun on lisättävä Kubernetes-arkistot manuaalisesti, koska niitä ei ole esiasennettu CentOS 7: een.

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

Kun pakettivaraus on nyt valmis, voit asentaa kubeadm- ja docker-paketit.

# yum install kubeadm docker -y 

Käynnistä ja ota käyttöön molemmat palvelut.

# systemctl enable docker
# systemctl start docker
# systemctl enable kubelet
# systemctl start kubelet

Vaadimme nyt kubeadm initin luoman tunnuksen liittymään klusteriin. Voit kopioida ja liittää sen solmuusi 1 ja solmu 2, jos olet kopioinut sen jonnekin.

# kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5  --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41 

Kuten viimeisellä rivillä ehdotetaan, palaa takaisin pääsolmuusi ja tarkista, ovatko työntekijäsolmu-1 ja työntekijäsolmu-2 liittyneet klusteriin seuraavan komennon avulla.

# kubectl get nodes

Jos kaikki vaiheet suoritetaan onnistuneesti, sinun pitäisi nähdä solmu 1 ja solmu 2 valmiustilassa pääsolmussa.

Suositeltava luku: Nginxin asentaminen Kubernetes-klusteriin

Tässä vaiheessa olemme saaneet Kubernetes-klusterin asennuksen onnistuneesti päätökseen Centos 7: ssä ja olemme onnistuneesti sisällyttäneet kaksi työntekijäsolmua. Voit nyt alkaa luoda podejasi ja ottaa palvelujasi käyttöön.