Implementer Kubernetes med Kubeadm på CentOS 7

Oversigt

Denne artikel er beregnet til at hjælpe dig med at få en Kubernetes-klynge op at køre med kubeadm på ingen tid. Denne vejledning vil implementere to servere, en master og en worker, men du kan installere så mange servere, som du vil.

Hvad er kubeadm?

Kubeadm er et værktøj udviklet af Kubernetes, som giver dig mulighed for at få et minimum levedygtigt klynge op at køre ved at følge bedste praksis. Det vil kun bootstrap din klynge, ikke klargøringsmaskiner. Ting såsom tilføjelser, Kubernetes dashboard, overvågningsløsninger og så videre er ikke noget kubeadm vil gøre for dig.

Forudsætninger

Der er et par krav til de servere, vi vil implementere. En eller flere maskiner, der kører et deb/rpm-kompatibelt OS. Vi vil bruge CentOS.

  • 2 GB eller mere RAM pr. maskine
  • 2 CPU'er eller mere på masteren

Fuld netværksforbindelse mellem alle maskiner i klyngen

De to servere, der er installeret i denne vejledning, er følgende: - 1 CPU 2GB RAM med CentOS 7 (Worker node) - 2 CPU 4GB RAM med CentOS 7 (Master node)

Med denne mængde RAM på begge servere vil Kubernetes have masser af plads til at trække vejret.

Konfiguration af arbejder og master

Her er de trin, vi skal tage på både master- og arbejderknuden:

  • Yum opdatering og pakker
  • Installer docker
  • Deaktiver selinux
  • Deaktiver swap
  • Deaktiver Firewall
  • Opdater IPTables
  • Installer kubelet/kubeadm/kubectl

Installation af Docker

Vi bruger versionen 1.14af Kubernetes i denne tutorial. Til denne version anbefaler Kubernetes at køre Docker-version 18.06.2. Sørg for at tjekke den anbefalede Docker-version til din version af Kuberenetes

Vi vil tilføje Docker-depotet til yum og specifikt installere 18.06.2. Når Docker er installeret, bliver vi nødt til at konfigurere docker-dæmonen til de indstillinger, der anbefales af 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

Da vi bruger CentOS, skal vi deaktivere SELinux. Dette er nødvendigt for at give containere adgang til værtsfilsystemet.

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

Deaktiver Swap

Swap skal deaktiveres for at tillade kubelet at fungere korrekt.

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

Deaktiver Firewall

Kubernetes bruger IPTables til at håndtere indgående og udgående trafik - så for at undgå problemer deaktiverer vi firewalld.

systemctl disable firewalld
systemctl stop firewalld

Opdater IPTables

Kubernetes anbefaler, at vi sikrer, at den net.bridge.bridge-nf-call-iptableser sat til 1. Dette skyldes problemer, hvor REHL/CentOS 7 har haft problemer med, at trafik bliver omdirigeret forkert på grund af omgåelse af 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 bliver nødt til at tilføje kubernetes repo til yum. Når vi gør det, skal vi bare køre installationskommandoen 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

Nu har vi fuldt konfigureret både vores master- og worker-node. Vi kan nu initialisere vores masterknudepunkt og forbinde vores arbejderknudepunkter med masteren!

Bemærk Hvis du vil tilføje flere arbejderknudepunkter, skulle ovenstående proces også udføres på alle disse knudepunkter.

Master Node opsætning

Vi ønsker at initialisere vores masterknude ved at køre følgende kommando. Du vil gerne erstatte din masternodes IP-adresse i kommandoen nedenfor. Derudover sender vi pod-network-cidr ind for at gøre det lettere for os senere, når vi installerer Flannel-netværksoverlejringen.

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

Dette kan tage et stykke tid at fuldføre, men når det er afsluttet, vil du se noget lignende i slutningen af ​​output som følgende.

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

Denne kommando er, hvad dine arbejdsknudepunkter skal udføre for at slutte sig til klyngen, så læg mærke til den.

Næste op er Flannel. Flanell er det, der tillader pod til pod kommunikation. Der er forskellige andre typer netværksoverlejringer, som du kan installere, men for nemheds skyld vil denne vejledning bruge Flannel.

Kopier kube/configfilen over til din, $Homeså du kan udføre kubectlkommandoer.

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

Et sidste trin på masterknudepunktet er at installere Flannel. Kør følgende kommando.

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

Med denne konfiguration kopieret vil du være i stand til at køre kubectl get csog få et svar.

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

Din masterknude er indstillet og klar til at gå. Ind på arbejderknudepunktet!

Arbejder Node

På dette tidspunkt er der intet ekstra arbejde, der er nødvendigt på arbejderknudepunktet. Alt vi skal gøre er at køre kubeadm joinkommandoen, som vi fik fra vores kubeadm initoutput.

Hvis du ved en tilfældighed har forlagt kommandoen kubeadm join, kan du generere en anden på masterknuden ved at køre kubeadm token create --print-join-command

Når du først kører kubeadm join-kommandoen, kubectl get nodesvil du se et output svarende til følgende , hvis du kører på master.

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

Afslutter

Ligesom du har bootstrappet en Kubernetes-klynge ved hjælp af kubeadm. Du kan også gøre dette med private netværk. Vultr, såvel som andre cloud-udbydere, giver mulighed for private netværk. Hvis du også ønsker at udføre kubectl-kommandoer fra din lokale maskine mod din klynge, kan du opnå dette ved at have kubectl installeret lokalt og trække .kube/configfilen ned fra klyngen til din lokale maskine i $HOME/.kube/config.

Forhåbentlig hjælper denne guide dig gennem kubeadm og får dig til at spille med kubernetes på ingen tid!

Nyttige links:


Installer Plesk på CentOS 7

Installer Plesk på CentOS 7

Bruger du et andet system? Plesk er et proprietært webhost kontrolpanel, der giver brugerne mulighed for at administrere deres personlige og/eller klienters websteder, databaser

Sådan installeres Squid Proxy på CentOS

Sådan installeres Squid Proxy på CentOS

Squid er et populært, gratis Linux-program, der giver dig mulighed for at oprette en webproxy til videresendelse. I denne vejledning vil du se, hvordan du installerer Squid på CentOS for at gøre dig

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Introduktion Lighttpd er en forgrening af Apache, der sigter mod at være meget mindre ressourcekrævende. Den er let, deraf navnet, og den er ret enkel at bruge. Installer

Konfiguration af statisk netværk og IPv6 på CentOS 7

Konfiguration af statisk netværk og IPv6 på CentOS 7

VULTR har for nylig foretaget ændringer i deres ende, og alt skulle nu fungere fint ud af boksen med NetworkManager aktiveret. Skulle du ønske at deaktivere

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 er et kraftfuldt overvågningssystem, og når det bruges i en master-klient-model, kan det erstatte behovet for NRPE-baserede overvågningstjek. Mester-klienten

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj

Sådan installeres Microweber på CentOS 7

Sådan installeres Microweber på CentOS 7

Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig

Sådan installeres Mattermost 4.1 på CentOS 7

Sådan installeres Mattermost 4.1 på CentOS 7

Bruger du et andet system? Mattermost er et open source, selvhostet alternativ til Slack SAAS-meddelelsestjenesten. Med andre ord, med Mattermost er du ca

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hvad skal du bruge En Vultr VPS med mindst 1 GB RAM. SSH-adgang (med root/administrative rettigheder). Trin 1: Installation af BungeeCord Første ting først

Lad os kryptere på Plesk

Lad os kryptere på Plesk

Plesk-kontrolpanelet har en meget flot integration til Lets Encrypt. Lets Encrypt er en af ​​de eneste SSL-udbydere, der udleverer certifikater komplet

Lader kryptere på cPanel

Lader kryptere på cPanel

Lets Encrypt er en certifikatmyndighed dedikeret til at levere SSL-certifikater gratis. cPanel har bygget en pæn integration, så du og din klient

Sådan installeres Concrete5 på CentOS 7

Sådan installeres Concrete5 på CentOS 7

Bruger du et andet system? Concrete5 er et open source CMS, som tilbyder mange karakteristiske og nyttige funktioner til at hjælpe redaktører med at producere indhold nemt og

Sådan installeres Review Board på CentOS 7

Sådan installeres Review Board på CentOS 7

Bruger du et andet system? Review Board er et gratis og open source-værktøj til gennemgang af kildekode, dokumentation, billeder og mange flere. Det er webbaseret software

Konfigurer HTTP-godkendelse med Nginx på CentOS 7

Konfigurer HTTP-godkendelse med Nginx på CentOS 7

I denne vejledning lærer du, hvordan du opsætter HTTP-godkendelse for en Nginx-webserver, der kører på CentOS 7. Krav For at komme i gang skal du bruge

Sådan installeres YOURLS på CentOS 7

Sådan installeres YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) er en open source URL-forkortelse og dataanalyseapplikation. I denne artikel vil vi dække installationsprocessen

Sådan installeres og konfigureres ArangoDB på CentOS 7

Sådan installeres og konfigureres ArangoDB på CentOS 7

Bruger du et andet system? Introduktion ArangoDB er en open source NoSQL-database med en fleksibel datamodel for dokumenter, grafer og nøgleværdier. det er

Brug af Etckeeper til versionskontrol af /etc

Brug af Etckeeper til versionskontrol af /etc

Introduktion /etc/-biblioteket spiller en afgørende rolle i den måde et Linux-system fungerer på. Årsagen til dette er, at næsten alle systemkonfigurationer

Hvorfor skal du bruge SSHFS? Sådan monteres et eksternt filsystem med SSHFS på CentOS 6

Hvorfor skal du bruge SSHFS? Sådan monteres et eksternt filsystem med SSHFS på CentOS 6

Mange systemadministratorer administrerer store mængder servere. Når filer skal tilgås på tværs af forskellige servere, logges ind på hver enkelt individuelt ca

Opsætning af en Half Life 2-server på CentOS 6

Opsætning af en Half Life 2-server på CentOS 6

Denne vejledning vil dække processen med at installere en Half Life 2-spilserver på CentOS 6 System. Trin 1: Installation af forudsætninger For at opsætte ou

Sådan installeres Laravel GitScrum på CentOS 7

Sådan installeres Laravel GitScrum på CentOS 7

Laravel GitScrum eller GitScrum er et open source-produktivitetsværktøj designet til at hjælpe udviklingsteams med at implementere Scrum-metoden på en måde, der ligner t.

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 lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere