GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit Kubernetes 1.5 s kubeadm na CentOS

Nová verze Kubernetes je venku, takže jsme tu s dalším článkem Kubernetes. S Kubernetes 1.5 je kubeadm stále ve verzi alfa a nedoporučuje se jej používat v produkci, protože stále nepodporuje nástroj pro vyrovnávání zatížení. Chystáme se nainstalovat známý online obchod s ponožkami jako demo a k odhalení služby použijeme nodeport.

Instalace Kubernetes 1.5 na všechny uzly

Pojďme přidat úložiště kubernetes pro CentOS:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetesbaseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0EOF

Po přidání repo musíme SElinux vypnout, protože si s kubernetes moc dobře nehraje. Chcete-li jej dočasně vypnout, zadejte

setenforce 0

Aby přetrvával i po restartu, použijte nano k úpravě konfiguračního souboru SElinux takto:

nano /etc/selinux/config

a ujistěte se, že je linka SELINUX nastavena na povolenou nebo zakázanou:

SELINUX=disabled

Uložte soubor a můžeme pokračovat v instalaci požadovaných balíčků.

yum install docker kubelet kubeadm kubectl kubernetes-cni

Chcete-li povolit automatické spouštění dockeru při spouštění, spusťte tento příkaz:

systemctl enable docker

A chcete-li jej spustit hned, spusťte následující.

systemctl start docker

Dále udělejme totéž pro kubelet

systemctl enable kubelet

systemctl start kubelet

Nastavení clusteru

První věc, kterou musíme udělat, je rozhodnout o masteru našeho nového clusteru. Pokud jsou všechny uzly nastaveny tak, jak je uvedeno výše, spustíme náš určený hlavní uzel následujícím příkazem.

kubeadm init

Všimněte si, že tento příkaz nemůžete spustit dvakrát, před druhým spuštěním budete muset cluster zrušit. Výstup bude podobný tomuto:

[root@centos-01 kubernetes]# kubeadm init
[kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters.
[preflight] Running pre-flight checks
[preflight] WARNING: firewalld is active, please ensure ports [6443 9898 10250] are open or your cluster may not function correctly
[init] Using Kubernetes version: v1.5.1
[tokens] Generated token: "9a6b48.b4011ffeeb237381"
[certificates] Generated Certificate Authority key and certificate.
[certificates] Generated API Server key and certificate
[certificates] Generated Service Account signing keys
[certificates] Created keys and certificates in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 105.821991 seconds
[apiclient] Waiting for at least one node to register and become ready
[apiclient] First node is ready after 4.505809 seconds
[apiclient] Creating a test deployment
[apiclient] Test deployment succeeded
[token-discovery] Created the kube-discovery deployment, waiting for it to become ready
[token-discovery] kube-discovery is ready after 68.003359 seconds
[addons] Created essential addon: kube-proxy
[addons] Created essential addon: kube-dns

Your Kubernetes master has initialized successfully!

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node:

kubeadm join --token=9a6b48.b4011ffeeb237381 45.55.128.42

Instalace sítě pod a přidání uzlů do clusteru

Ve výše uvedené části jsme inicializovali cluster master a v posledním řádku jsme dostali příkaz s tokenem, který použijeme k přidání uzlů. Ale než to uděláme, musíme nainstalovat síť pod.

kubectl apply -f https://git.io/weave-kube

Existuje mnoho způsobů, jak mít síť podů, ale výše uvedený je možná ten nejjednodušší. Používá Container Network Interface nebo CNI, což je navrhovaný standard pro síťové kontejnery v Linuxu.

Dále můžeme přidat uzly do clusteru spuštěním tohoto příkazu na všech uzlech

kubeadm join --token=bb6fc2.be0345f5b02a32a0 45.55.128.42

Token je vyčištěn, takže jste nemohli přidávat uzly do mého clusteru. Dále umožňuje, aby pody běžely na hlavním a ne pouze na uzlech.

kubectl taint nodes --all dedicated-

Poté můžeme zkontrolovat uzly a zjistit, zda jsou všechny online.

kubectl get nodes

Příklad instalace mikroslužeb

Existuje jednoduchý příklad mikroslužeb, který použijeme k testování našeho clusteru. Je to online obchod s ponožkami.

Nejprve přidáme jmenný prostor sock shop

kubectl create namespace sock-shop

A pak vytvoříme službu

kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"

Poté musíme nějakou dobu počkat, než se vytvoří kontejnery, a pak se můžeme pokusit navštívit nový web. Abychom jej mohli navštívit, musíme znát jeho adresu. Pojďme prozkoumat službu

kubectl describe svc front-end -n sock-shop

Poskytne vám výstup podobný tomuto

Name: front-end
Namespace: sock-shop
Labels: name=front-end
Selector: name=front-end
Type: NodePort
IP: 10.104.11.202
Port: <unset> 80/TCP
NodePort: <unset> 31500/TCP
Endpoints: 10.32.0.4:8079
Session Affinity: None
No events.

Tučný řádek je zvýrazněn mnou, protože potřebujeme číslo portu, který služba používá. Potřebujeme zkombinovat číslo portu s adresou jednoho z našich uzlů a dostaneme se na web.

Závěr

Úspěšně jsme tedy nastavili cluster Kubernetes 1.5 s kubeadm na CentOS 7. V našem případě se jedná o cluster se třemi uzly, ale kubeadm vám umožňuje snadno škálovat cluster přidáním nových uzlů. Ujistěte se, že váš token bude soukromý, protože s tokenem a veřejnou IP může kdokoli přidávat uzly do vašeho clusteru. Tímto tento článek končíme, děkujeme za přečtení a přejeme hezký den.


Cent OS
  1. Jak nainstalovat CentOS 8 (se snímky obrazovky)

  2. Jak nastavit Pure-FTPD s MySQL na CentOS a RedHat

  3. Jak nastavit klíče SSH na CentOS 8

  1. Jak monitorovat Kubernetes pomocí Prometheus

  2. Jak nainstalovat Python 3 na CentOS 7 s SCL

  3. Jak nastavit FTP server s VSFTPD na CentOS 7

  1. Jak nastavit FTP server s VSFTPD na CentOS 8

  2. Jak nainstalovat Kubernetes(k8s) s Minikube na CentOS 8

  3. Jak nastavit Kubernetes(k8s) Cluster v HA s Kubeadm