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:

Efterlad en kommentar

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.

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.

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.

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