Distribuer Kubernetes med Kubeadm på CentOS 7

Oversikt

Denne artikkelen er ment å hjelpe deg med å få en Kubernetes-klynge i gang med kubeadm på kort tid. Denne veiledningen vil distribuere to servere, en master og en arbeider, men du kan distribuere så mange servere du vil.

Hva er kubeadm?

Kubeadm er et verktøy utviklet av Kubernetes som lar deg få et minimum levedyktig klynge i gang ved å følge beste praksis. Det vil bare starte opp klyngen din, ikke klargjøringsmaskiner. Ting som tillegg, Kubernetes-dashbordet, overvåkingsløsninger og så videre er ikke noe kubeadm vil gjøre for deg.

Forutsetninger

Det er noen krav til serverne vi skal distribuere. En eller flere maskiner som kjører et deb/rpm-kompatibelt OS. Vi kommer til å bruke CentOS.

  • 2 GB eller mer RAM per maskin
  • 2 CPUer eller mer på masteren

Full nettverkstilkobling mellom alle maskiner i klyngen

De to serverne som er distribuert i denne veiledningen er følgende: - 1 CPU 2GB RAM med CentOS 7 (Worker node) - 2 CPU 4GB RAM med CentOS 7 (Master node)

Med denne mengden RAM på begge serverne vil Kubernetes ha god plass til å puste.

Konfigurering av arbeider og master

Her er trinnene vi må ta på både hoved- og arbeidernoden:

  • Nam oppdatering og pakker
  • Installer docker
  • Deaktiver selinux
  • Deaktiver bytte
  • Deaktiver brannmur
  • Oppdater IPTables
  • Installer kubelet/kubeadm/kubectl

Installerer Docker

Vi bruker versjonen 1.14av Kubernetes i denne opplæringen. For denne versjonen anbefaler Kubernetes å kjøre Docker-versjonen 18.06.2. Sørg for å sjekke den anbefalte Docker-versjonen for din versjon av Kuberenetes

Vi vil legge til Docker-depotet til yum og spesifikt installere 18.06.2. Når Docker er installert, må vi konfigurere docker-demonen til innstillingene anbefalt av Kubernetes.

###Add yum-utils, if not installed already
yum install yum-utils

###Add Docker repository.
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

###Install Docker CE.
yum update && yum install docker-ce-18.06.2.ce

###Create /etc/docker directory.
mkdir /etc/docker

###Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d

###Restart Docker
systemctl daemon-reload
systemctl enable docker.service
systemctl restart docker

Deaktiver SELinux

Siden vi bruker CentOS, må vi deaktivere SELinux. Dette er nødvendig for å gi beholdere tilgang til vertsfilsystemet.

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disable/' /etc/selinux/config

Deaktiver Swap

Swap må deaktiveres for å la kubelet fungere skikkelig.

sed -i '/swap/d' /etc/fstab
swapoff -a

Deaktiver brannmur

Kubernetes bruker IPTables for å håndtere innkommende og utgående trafikk - så for å unngå problemer deaktiverer vi brannmuren.

systemctl disable firewalld
systemctl stop firewalld

Oppdater IPTables

Kubernetes anbefaler at vi sørger for at net.bridge.bridge-nf-call-iptableser satt til 1. Dette skyldes problemer der REHL/CentOS 7 har hatt problemer med at trafikk blir omdirigert feil på grunn av omgåelse av iptables.

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

Installer kubelet/kubeadm/kubectl

Vi må legge til kubernetes-repoen til yum. Når vi har gjort det, trenger vi bare å kjøre installeringskommandoen og aktivere kubelet.

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
exclude=kube*
EOF

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet

Nå har vi fullt konfigurert både hoved- og arbeidernoden vår. Vi kan nå initialisere masternoden vår og slå sammen arbeidernodene våre til masteren!

Merk Hvis du ønsker å legge til flere arbeidernoder, må prosessen ovenfor også gjøres på alle disse nodene.

Master Node oppsett

Vi ønsker å initialisere masternoden vår ved å kjøre følgende kommando. Du vil erstatte masternodens IP-adresse i kommandoen nedenfor. I tillegg sender vi inn pod-network-cidr for å gjøre det enklere for oss senere når vi installerer Flannel-nettverksoverlegget.

kubeadm init --apiserver-advertise-address=YOUR_IP_HERE --pod-network-cidr=10.244.0.0/16

Dette kan ta en stund å fullføre, men når det er fullført, vil du se noe lignende på slutten av utgangen som følgende.

kubeadm join YOUR_IP:6443 --token 4if8c2.pbqh82zxcg8rswui \
--discovery-token-ca-cert-hash sha256:a0b2bb2b31bf7b06bb5058540f02724240fc9447b0e457e049e59d2ce19fcba2

Denne kommandoen er hva arbeidsnodene dine må utføre for å bli med i klyngen, så legg merke til den.

Neste ut er Flanell. Flanell er det som tillater pod til pod kommunikasjon. Det finnes forskjellige andre typer nettverksoverlegg som du kan installere, men for enkelhets skyld vil denne veiledningen bruke Flannel.

Kopier kube/configfilen over til din $Homeslik at du kan utføre kubectlkommandoer.

mkdir $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config

Et siste trinn på masternoden er å installere Flannel. Kjør følgende kommando.

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Med denne konfigurasjonen kopiert over vil du kunne kjøre kubectl get csog få svar.

NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true"}

Masternoden din er satt og klar til å gå. Inn på arbeidernoden!

Arbeider Node

På dette tidspunktet er det ikke noe ekstra arbeid som er nødvendig på arbeidernoden. Alt vi trenger å gjøre er å kjøre kubeadm joinkommandoen vi fikk fra kubeadm initutdataene våre .

Hvis du ved en tilfeldighet har forlagt kommandoen kubeadm join, kan du generere en annen på masternoden ved å kjøre kubeadm token create --print-join-command

Når du kjører kubeadm join-kommandoen, hvis du kjører kubectl get nodespå master vil du se en lignende utgang som følgende.

NAME          STATUS   ROLES    AGE    VERSION
k8-master   Ready    master   107m   v1.14.2
k8-worker   Ready    <none>   45m    v1.14.2

Avslutter

Akkurat som det har du bootstrappet en Kubernetes-klynge ved å bruke kubeadm. Du kan også gjøre dette med private nettverk. Vultr, så vel som andre skyleverandører, tillater private nettverk. Dessuten, hvis du ønsker å utføre kubectl-kommandoer fra din lokale maskin mot klyngen din, kan du oppnå dette ved å ha kubectl installert lokalt og trekke ned .kube/configfilen fra klyngen til din lokale maskin i $HOME/.kube/config.

Forhåpentligvis hjelper denne guiden deg gjennom kubeadm og får deg til å spille med kubernetes på kort tid!

Nyttige lenker:


Installer Plesk på CentOS 7

Installer Plesk på CentOS 7

Bruker du et annet system? Plesk er et proprietært kontrollpanel for webverten som lar brukere administrere sine personlige og/eller klienters nettsteder, databaser

Slik installerer du Squid Proxy på CentOS

Slik installerer du Squid Proxy på CentOS

Squid er et populært, gratis Linux-program som lar deg lage en webproxy for videresending. I denne veiledningen vil du se hvordan du installerer Squid på CentOS for å gjøre deg om

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Introduksjon Lighttpd er en apachegaffel som har som mål å være mye mindre ressurskrevende. Den er lett, derav navnet, og er ganske enkel å bruke. Installer

Konfigurering av statisk nettverk og IPv6 på CentOS 7

Konfigurering av statisk nettverk og IPv6 på CentOS 7

VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Icinga2 er et kraftig overvåkingssystem, og når det brukes i en master-klient-modell, kan det erstatte behovet for NRPE-baserte overvåkingskontroller. Mester-klienten

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Slik installerer du Microweber på CentOS 7

Slik installerer du Microweber på CentOS 7

Bruker du et annet system? Microweber er en åpen kildekode dra og slipp CMS og nettbutikk. Microweber-kildekoden er vert på GitHub. Denne guiden vil vise deg

Hvordan installere Vanilla Forum på CentOS 7

Hvordan installere Vanilla Forum på CentOS 7

Bruker du et annet system? Vanilla forum er en åpen kildekode-forumapplikasjon skrevet i PHP. Det er en fullt tilpassbar, enkel å bruke og støtter ekstern

Slik installerer du Mattermost 4.1 på CentOS 7

Slik installerer du Mattermost 4.1 på CentOS 7

Bruker du et annet system? Mattermost er et åpen kildekode, selvdrevet alternativ til Slack SAAS-meldingstjenesten. Med andre ord, med Mattermost kan du ca

Opprette et nettverk av Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Opprette et nettverk av Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hva du trenger En Vultr VPS med minst 1 GB RAM. SSH-tilgang (med root/administratorrettigheter). Trinn 1: Installere BungeeCord Først

La oss kryptere på Plesk

La oss kryptere på Plesk

Plesk-kontrollpanelet har en veldig fin integrasjon for Lets Encrypt. Lets Encrypt er en av de eneste SSL-leverandørene som gir ut sertifikater komplett

La oss kryptere på cPanel

La oss kryptere på cPanel

Lets Encrypt er en sertifiseringsinstans dedikert til å tilby SSL-sertifikater gratis. cPanel har bygget en ryddig integrasjon slik at du og din klient

Hvordan installere Concrete5 på CentOS 7

Hvordan installere Concrete5 på CentOS 7

Bruker du et annet system? Concrete5 er et åpen kildekode CMS som tilbyr mange karakteristiske og nyttige funksjoner for å hjelpe redaktører med å produsere innhold enkelt og

Slik installerer du Review Board på CentOS 7

Slik installerer du Review Board på CentOS 7

Bruker du et annet system? Review Board er et gratis og åpen kildekodeverktøy for gjennomgang av kildekode, dokumentasjon, bilder og mye mer. Det er nettbasert programvare

Sett opp HTTP-autentisering med Nginx på CentOS 7

Sett opp HTTP-autentisering med Nginx på CentOS 7

I denne veiledningen lærer du hvordan du setter opp HTTP-autentisering for en Nginx-webserver som kjører på CentOS 7. Krav For å komme i gang trenger du

Slik installerer du GoAccess på CentOS 7

Slik installerer du GoAccess på CentOS 7

Bruker du et annet system? GoAccess er en åpen kildekode-nettlogganalysator. Du kan bruke den til analyse av logger på sanntidsbasis i enten terminalen eller

Hvordan installere YOURLS på CentOS 7

Hvordan installere YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) er en åpen kildekode-applikasjon for URL-forkorting og dataanalyse. I denne artikkelen vil vi dekke installasjonsprosessen

Hvordan installere og konfigurere ArangoDB på CentOS 7

Hvordan installere og konfigurere ArangoDB på CentOS 7

Bruker du et annet system? Introduksjon ArangoDB er en åpen kildekode NoSQL-database med en fleksibel datamodell for dokumenter, grafer og nøkkelverdier. Det er

Bruke Etckeeper for versjonskontroll av /etc

Bruke Etckeeper for versjonskontroll av /etc

Innledning /etc/-katalogen spiller en kritisk rolle i måten et Linux-system fungerer på. Grunnen til dette er fordi nesten alle systemkonfigurasjoner

Hvorfor bør du bruke SSHFS? Hvordan montere et eksternt filsystem med SSHFS på CentOS 6

Hvorfor bør du bruke SSHFS? Hvordan montere et eksternt filsystem med SSHFS på CentOS 6

Mange systemadministratorer administrerer store mengder servere. Når filer må åpnes på tvers av forskjellige servere, logger du på hver enkelt individuelt ca

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer