Distribuera Kubernetes med Kubeadm på CentOS 7

Översikt

Den här artikeln är tänkt att hjälpa dig att få igång ett Kubernetes-kluster med kubeadm på nolltid. Den här guiden kommer att distribuera två servrar, en master och en arbetare, men du kan distribuera så många servrar du vill.

Vad är kubeadm?

Kubeadm är ett verktyg utvecklat av Kubernetes som låter dig få ett minimum av livskraftiga kluster igång genom att följa bästa praxis. Det kommer bara att starta upp ditt kluster, inte tillhandahållande av maskiner. Saker som tillägg, Kubernetes instrumentpanel, övervakningslösningar och så vidare är inget kubeadm kommer att göra för dig.

Förutsättningar

Det finns några krav för de servrar vi kommer att distribuera. En eller flera maskiner som kör ett deb/rpm-kompatibelt OS. Vi kommer att använda CentOS.

  • 2 GB eller mer RAM per maskin
  • 2 processorer eller fler på mastern

Full nätverksanslutning mellan alla maskiner i klustret

De två servrarna som används i den här guiden är följande: - 1 CPU 2GB RAM med CentOS 7 (arbetarnod) - 2 CPU 4GB RAM med CentOS 7 (Masternod)

Med denna mängd RAM-minne på båda servrarna kommer Kubernetes att ha gott om utrymme att andas.

Konfigurera arbetare och master

Här är stegen vi måste ta på både huvud- och arbetarnoden:

  • Mums uppdatering och paket
  • Installera docker
  • Inaktivera selinux
  • Inaktivera swap
  • Inaktivera brandvägg
  • Uppdatera IPTables
  • Installera kubelet/kubeadm/kubectl

Installerar Docker

Vi kommer att använda versionen 1.14av Kubernetes i denna handledning. För den här versionen rekommenderar Kubernetes att köra Docker-versionen 18.06.2. Se till att kontrollera den rekommenderade Docker-versionen för din version av Kuberenetes

Vi kommer att lägga till Docker-förrådet till yum och specifikt installera 18.06.2. När Docker är installerat måste vi konfigurera docker-demonen till de inställningar som rekommenderas 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

Inaktivera SELinux

Eftersom vi använder CentOS måste vi inaktivera SELinux. Detta är nödvändigt för att ge behållare åtkomst till värdfilsystemet.

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

Inaktivera Swap

Swap måste inaktiveras för att kubelet ska fungera korrekt.

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

Inaktivera brandvägg

Kubernetes använder IPTables för att hantera inkommande och utgående trafik - så för att undvika problem inaktiverar vi brandvägg.

systemctl disable firewalld
systemctl stop firewalld

Uppdatera IPTables

Kubernetes rekommenderar att vi ser till att den net.bridge.bridge-nf-call-iptablesär inställd på 1. Detta beror på problem där REHL/CentOS 7 har haft problem med att trafiken omdirigeras felaktigt på grund av att iptables förbigår.

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

Installera kubelet/kubeadm/kubectl

Vi kommer att behöva lägga till kubernetes repo till yum. När vi väl gör det behöver vi bara köra installationskommandot och aktivera 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 konfigurerat både vår huvud- och arbetarnod. Vi kan nu initiera vår huvudnod och ansluta våra arbetarnoder till mastern!

Notera Om du vill lägga till fler arbetarnoder måste processen ovan också göras på alla dessa noder.

Master Node setup

Vi vill initiera vår masternod genom att köra följande kommando. Du vill byta ut din masternods IP-adress i kommandot nedan. Dessutom skickar vi in ​​pod-network-cidr för att göra det lättare för oss senare när vi installerar Flannel-nätverksöverlägget.

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

Detta kan ta ett tag att slutföra men när det är klart kommer du att se något liknande i slutet av utdata som följande.

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

Det här kommandot är vad dina arbetarnoder behöver utföra för att gå med i klustret, så notera det.

Nästa upp är Flanell. Flanell är det som tillåter pod till pod kommunikation. Det finns olika andra typer av nätverksöverlägg som du kan installera men för enkelhetens skull kommer denna guide att använda Flannel.

Kopiera kube/configfilen till din $Homeså att du kan utföra kubectlkommandon.

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

Ett sista steg på masternoden är att installera Flannel. Kör följande kommando.

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

Med den här konfigurationen kopierad kommer du att kunna köra kubectl get csoch få ett svar.

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

Din huvudnod är inställd och redo att gå. Till arbetarnoden!

Arbetarnod

Vid denna tidpunkt är det inget extra arbete som är nödvändigt på arbetarnoden. Allt vi behöver göra är att köra kubeadm joinkommandot som vi fick från vår kubeadm initutdata.

Om du av en slump tappade kubeadm join-kommandot kan du generera ett annat på masternoden genom att köra kubeadm token create --print-join-command

När du väl kör kommandot kubeadm join, om du kör kubectl get nodespå master kommer du att se en liknande utdata som följande.

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

Avslutar

Precis så har du stövlat ett Kubernetes-kluster med kubeadm. Du kan också göra detta med privata nätverk. Vultr, liksom andra molnleverantörer, tillåter privata nätverk. Dessutom, om du vill köra kubectl-kommandon från din lokala dator mot ditt kluster, kan du åstadkomma detta genom att ha kubectl installerat lokalt och dra ner .kube/configfilen från klustret till din lokala dator i $HOME/.kube/config.

Förhoppningsvis hjälper den här guiden dig att korsa kubeadm och få dig att spela med kubernetes på nolltid!

Användbara länkar:


Installera Plesk på CentOS 7

Installera Plesk på CentOS 7

Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser

Hur man installerar Squid Proxy på CentOS

Hur man installerar Squid Proxy på CentOS

Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera

Konfigurera statiskt nätverk och IPv6 på CentOS 7

Konfigurera statiskt nätverk och IPv6 på CentOS 7

VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Microweber på CentOS 7

Hur man installerar Microweber på CentOS 7

Använder du ett annat system? Microweber är en öppen källkod för dra och släpp CMS och onlinebutik. Microweber källkod finns på GitHub. Denna guide kommer att visa dig

Hur man installerar Vanilla Forum på CentOS 7

Hur man installerar Vanilla Forum på CentOS 7

Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa

Hur man installerar Mattermost 4.1 på CentOS 7

Hur man installerar Mattermost 4.1 på CentOS 7

Använder du ett annat system? Mattermost är ett alternativ med öppen källkod, självvärd till meddelandetjänsten Slack SAAS. Med andra ord, med Mattermost, du ca

Skapa ett nätverk av Minecraft-servrar med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Skapa ett nätverk av Minecraft-servrar med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Vad du behöver En Vultr VPS med minst 1 GB RAM. SSH-åtkomst (med root-/administrativa privilegier). Steg 1: Installera BungeeCord Först till kvarn

Låt oss kryptera på Plesk

Låt oss kryptera på Plesk

Plesks kontrollpanel har en mycket trevlig integration för Lets Encrypt. Lets Encrypt är en av de enda SSL-leverantörerna som ger ut certifikat fullständigt

Låter kryptera på cPanel

Låter kryptera på cPanel

Lets Encrypt är en certifikatmyndighet dedikerad till att tillhandahålla SSL-certifikat gratis. cPanel har byggt en snygg integration så att du och din klient

Hur man installerar Concrete5 på CentOS 7

Hur man installerar Concrete5 på CentOS 7

Använder du ett annat system? Concrete5 är ett CMS med öppen källkod som erbjuder många distinkta och användbara funktioner för att hjälpa redaktörer att producera innehåll enkelt och

Hur man installerar Review Board på CentOS 7

Hur man installerar Review Board på CentOS 7

Använder du ett annat system? Review Board är ett gratis och öppen källkodsverktyg för att granska källkod, dokumentation, bilder och många fler. Det är webbaserad mjukvara

Ställ in HTTP-autentisering med Nginx på CentOS 7

Ställ in HTTP-autentisering med Nginx på CentOS 7

I den här guiden lär du dig hur du ställer in HTTP-autentisering för en Nginx-webbserver som körs på CentOS 7. Krav För att komma igång behöver du

Hur man installerar YOURLS på CentOS 7

Hur man installerar YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) är ett webbadressförkortnings- och dataanalysprogram med öppen källkod. I den här artikeln kommer vi att täcka installationsprocessen

Hur man installerar och konfigurerar ArangoDB på CentOS 7

Hur man installerar och konfigurerar ArangoDB på CentOS 7

Använder du ett annat system? Inledning ArangoDB är en NoSQL-databas med öppen källkod med en flexibel datamodell för dokument, grafer och nyckel-värden. Det är

Använda Etckeeper för versionskontroll av /etc

Använda Etckeeper för versionskontroll av /etc

Inledning Katalogen /etc/ spelar en avgörande roll för hur ett Linux-system fungerar. Anledningen till detta är att nästan varje systemkonfiguration

Varför ska du använda SSHFS? Hur man monterar ett fjärrfilsystem med SSHFS på CentOS 6

Varför ska du använda SSHFS? Hur man monterar ett fjärrfilsystem med SSHFS på CentOS 6

Många systemadministratörer hanterar stora mängder servrar. När filer behöver nås över olika servrar, logga in på var och en individuellt ca

Konfigurera en Half Life 2-server på CentOS 6

Konfigurera en Half Life 2-server på CentOS 6

Denna handledning kommer att täcka processen att installera en Half Life 2-spelserver på CentOS 6 System. Steg 1: Installera förutsättningarna För att ställa in ou

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer