Slik installerer du en Kubernetes-klynge på CentOS 7
Donert av Google til Opensource-fellesskapet, har Kubernetes nå blitt det foretrukne beholderadministrasjonsverktøyet. Den kan administrere og orkestrere ikke bare docker-løpetider, men også containere og Rkt-kjøringer.
En typisk Kubernetes-klynge vil generelt ha en hovednode og flere arbeidernoder eller Minions. Arbeidsnodene administreres deretter fra hovednoden, og sikrer dermed at klyngen administreres fra et sentralt punkt.
Det er også viktig å nevne at du også kan distribuere en enkelt-node Kubernetes-klynge som generelt anbefales for svært lette, ikke-produksjonsmessige arbeidsbelastninger. Til dette kan du bruke Minikube, som er et verktøy som kjører en enkelt-node Kubernetes-klynge i en virtuell maskin på noden din.
Anbefalt lesing: Slik installerer du en Kubernetes-klynge på CentOS 8
For denne opplæringen vil vi gå gjennom en Kubernetes-klyngeinstallasjon med flere noder på CentOS 7 Linux. Denne opplæringen er kommandolinjebasert, så du trenger tilgang til terminalvinduet.
- Flere servere som kjører Centos 7 (1 hovednode, 2 arbeidernoder). Det anbefales at Master Node har minst 2 CPUer, selv om dette ikke er et strengt krav.
- Internett-tilkobling på alle nodene dine. Vi vil hente Kubernetes og docker-pakker fra depotet. På samme måte må du sørge for at yum-pakkebehandlingen er installert som standard og kan hente pakker eksternt.
- Du trenger også tilgang til en konto med sudo- eller root-rettigheter. I denne opplæringen skal jeg bruke root-kontoen min.
Vår 3-node-klynge vil se omtrent slik ut:
Installasjon av Kubernetes Cluster på Master-Node
For at Kubernetes skal fungere, trenger du en containeriseringsmotor. For denne installasjonen vil vi bruke docker da det er det mest populære.
Følgende trinn vil kjøre på Master-Node.
Angi vertsnavnet på hovednoden din, og hvis du ikke har en DNS-server, oppdater også filen /etc/hosts.
# 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
Du kan pinge worker-node-1 og worker-node-2 for å teste om den oppdaterte vertsfilen er i orden ved å bruke ping-kommandoen.
# ping 10.128.0.29 # ping 10.128.0.30
Deretter deaktiverer du SElinux og oppdaterer brannmurreglene.
# setenforce 0 # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux # reboot
Angi følgende brannmurregler på porter. Sørg for at hver brannmur-cmd-kommando gir en suksess.
# 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
Du må legge til Kubernetes-depoter manuelt, siden de ikke er installert som standard på CentOS 7.
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
Med pakkerepoen nå klar, kan du gå videre og installere kubeadm og docker-pakker.
# yum install kubeadm docker -y
Når installasjonen er fullført, aktiver og start begge tjenestene.
# systemctl enable kubelet # systemctl start kubelet # systemctl enable docker # systemctl start docker
Nå er vi klare til å initialisere kubernetes master, men før det må du deaktivere swap for å kjøre kommandoen \kubeadm init\.
# swapoff -a
Initialisering av Kubernetes master er en helautomatisert prosess som administreres av kommandoen \kubeadm init\ som du vil kjøre.
# kubeadm init
Du vil kanskje kopiere den siste linjen og lagre den et sted fordi du må kjøre den på arbeidernodene.
kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41
Tips: Noen ganger kan denne kommandoen klage på argumentene (args) som er sendt, så rediger den for å unngå feil. Så du vil slette ‘\’
-tegnet som følger med --token
og den siste kommandoen vil se slik ut.
kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41
Etter å ha initialisert Kubernetes vellykket, må du la brukeren din begynne å bruke klyngen. I vårt tilfelle ønsker vi å kjøre denne installasjonen som root-bruker, derfor vil vi gå videre og kjøre disse kommandoene som root. Du kan bytte til en sudo-aktivert bruker du foretrekker og kjøre nedenstående ved å bruke sudo.
For å bruke root, kjør:
# mkdir -p $HOME/.kube # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # chown $(id -u):$(id -g) $HOME/.kube/config
For å bruke en sudo-aktivert bruker, kjør:
$ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config
Sjekk nå om kubectl-kommandoen er aktivert.
# kubectl get nodes
På dette tidspunktet vil du også legge merke til at statusen til masternoden er Ikke klar. Dette er fordi vi ennå ikke skal distribuere pod-nettverket til klyngen.
Pod-nettverket er overleggsnettverket for klyngen, som er distribuert på toppen av det nåværende nodenettverket. Den er designet for å tillate tilkobling på tvers av poden.
Å distribuere nettverksklyngen er en svært fleksibel prosess avhengig av dine behov, og det er mange alternativer tilgjengelig. Siden vi ønsker å holde installasjonen vår så enkel som mulig, vil vi bruke Weavenet-plugin som ikke krever noen konfigurasjon eller ekstra kode og den gir én IP-adresse per pod som er flott for oss. Hvis du vil se flere alternativer, vennligst sjekk her.
Disse kommandoene vil være viktige for å få satt opp pod-nettverket.
# export kubever=$(kubectl version | base64 | tr -d '\n') # kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
Hvis du nå sjekker statusen til masternoden din, bør den være Klar.
# kubectl get nodes
Deretter legger vi til arbeidernodene til klyngen.
Sette opp arbeidernoder for å bli med i Kubernetes Cluster
Følgende trinn kjøres på arbeidernodene. Disse trinnene bør kjøres på hver arbeidsnode når du blir med i Kubernetes-klyngen.
På worker-node-1 og worker-node-2, angi vertsnavnet og i tilfelle du ikke har en DNS-server, oppdater også master- og worker-nodene på /etc/hosts-filen.
# 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
Du kan pinge master-node for å teste om den oppdaterte vertsfilen er i orden.
Deretter deaktiverer du SElinux og oppdaterer brannmurreglene.
# setenforce 0 # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Angi følgende brannmurregler på porter. Sørg for at alle brannmur-cmd-kommandoer gir suksess.
# 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
Du må legge til Kubernetes-depoter manuelt, siden de ikke er forhåndsinstallert på CentOS 7.
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
Med pakkerepoen nå klar, kan du gå videre og installere kubeadm og docker-pakker.
# yum install kubeadm docker -y
Start og aktiver begge tjenestene.
# systemctl enable docker # systemctl start docker # systemctl enable kubelet # systemctl start kubelet
Vi krever nå tokenet som kubeadm init genererte, for å bli med i klyngen. Du kan kopiere og lime den inn til node-1 og node-2 hvis du hadde kopiert den et sted.
# kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41
Som foreslått på den siste linjen, gå tilbake til hovednoden din og sjekk om arbeidernoden-1 og arbeidernoden-2 har sluttet seg til klyngen ved å bruke følgende kommando.
# kubectl get nodes
Hvis alle trinnene kjører vellykket, bør du se node-1 og node-2 i klar-status på master-noden.
Anbefalt lesing: Slik distribuerer du Nginx på en Kubernetes-klynge
På dette tidspunktet har vi fullført en vellykket installasjon av en Kubernetes-klynge på Centos 7, og vi har lykkes med to arbeidernoder. Du kan nå begynne å lage pods og distribuere tjenestene dine.