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.
- 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.
- 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ä.
- 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.