User Tools

Site Tools


container:kubernetes:k3s_install_etcd

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
container:kubernetes:k3s_install_etcd [2020/12/23 13:17] stonecontainer:kubernetes:k3s_install_etcd [2021/02/05 07:41] (current) stone
Line 1: Line 1:
 ====== Kubernetes via K3s mit etcd installieren ====== ====== Kubernetes via K3s mit etcd installieren ======
-Gestest wurde das ganze auf drei virtuellen Ubuntu 20.04 Nodes+Gestest wurde das ganze auf vier virtuellen Ubuntu 20.04 Nodes mit K3s v1.19.0\\ 
 +  * Node0 -> Loadbalancer für die Master (NGINX) 
 +  * Node1 -> Master & Worker 
 +  * Node2 -> Master & Worker 
 +  * Node3 -> Master & Worker 
 +  * Node4 -> Worker 
 \\ \\
  
Line 12: Line 18:
 apt dist-upgrade -y apt dist-upgrade -y
 reboot reboot
 +</code>
 +\\
 +
 +===== Installation NGINX Loadbalancer =====
 +Dieser NGINX wird verwendet damit der Traffic nicht auf einen Master kommt sondern auf alle Master aufgeteilt wird. \\
 +Nur so sind die Master Nodes auch wirklich HA. \\
 +Daher muss dieser NGINX ausserhalb vom Kubernetes Cluster laufen.
 +<code>
 +
 +apt-get install nginx
 +rm -f /etc/nginx/sites-enabled/default
 +
 +vim /etc/nginx/nginx.conf
 +stream {
 +  upstream k3s_master {
 +    server 192.168.88.121:6443;
 +    server 192.168.88.122:6443;
 +    server 192.168.88.123:6443;
 +  }
 +
 +  server {
 +    listen 6443;
 +    proxy_pass k3s_master;
 +  }
 +}
 +
 +systemctl restart nginx
 </code> </code>
 \\ \\
Line 34: Line 67:
 <code> <code>
 Master 2 - Node 2 Master 2 - Node 2
-export INSTALL_K3S_EXEC="--disable servicelb --disable traefik --cluster-init --server https://192.168.88.121:6443" +export INSTALL_K3S_EXEC="--disable servicelb --disable traefik --cluster-init --server https://192.168.88.120:6443" 
-curl -sfL http://get.k3s.io | K3S_TOKEN=K10dbb79453251d4adcf6048bda1b08ae8abf1d9d54ea5b342d91bd7a6ac7a55778::server:SuperGeilerTest sh -s -+curl -sfL https://get.k3s.io | K3S_TOKEN=K10dbb79453251d4adcf6048bda1b08ae8abf1d9d54ea5b342d91bd7a6ac7a55778::server:SuperGeilerTest sh -s -
 </code> </code>
 \\ \\
Line 42: Line 75:
 <code> <code>
 Master 3 - Node 3 Master 3 - Node 3
-export INSTALL_K3S_EXEC="--disable servicelb --disable traefik --cluster-init --server https://192.168.88.121:6443" +export INSTALL_K3S_EXEC="--disable servicelb --disable traefik --cluster-init --server https://192.168.88.120:6443" 
-curl -sfL http://get.k3s.io | K3S_TOKEN=K10dbb79453251d4adcf6048bda1b08ae8abf1d9d54ea5b342d91bd7a6ac7a55778::server:SuperGeilerTest sh -s -+curl -sfL https://get.k3s.io | K3S_TOKEN=K10dbb79453251d4adcf6048bda1b08ae8abf1d9d54ea5b342d91bd7a6ac7a55778::server:SuperGeilerTest sh -s -
 </code> </code>
 \\ \\
Line 51: Line 84:
 <code> <code>
 Worker 1 - Node 4 Worker 1 - Node 4
-curl -sfL http://get.k3s.io | K3S_URL=https://192.168.88.121:6443 K3S_TOKEN=K10dbb79453251d4adcf6048bda1b08ae8abf1d9d54ea5b342d91bd7a6ac7a55778::server:SuperGeilerTest sh -s -+curl -sfL https://get.k3s.io | K3S_URL=https://192.168.88.120:6443 K3S_TOKEN=K10dbb79453251d4adcf6048bda1b08ae8abf1d9d54ea5b342d91bd7a6ac7a55778::server:SuperGeilerTest sh -s -
 </code> </code>
 \\ \\
Line 65: Line 98:
 \\ \\
  
-===== Cluster kontrollieren ===== +===== Kontrolle des Clusters ===== 
 <code> <code>
 kubectl get nodes kubectl get nodes
Line 73: Line 106:
 kube03   Ready    etcd,master   4h21m   v1.19.5+k3s2 kube03   Ready    etcd,master   4h21m   v1.19.5+k3s2
 kube04   Ready    <none>        3h6m    v1.19.5+k3s2 kube04   Ready    <none>        3h6m    v1.19.5+k3s2
 +
 +root@kube01:~# kubectl cluster-info
 +Kubernetes master is running at https://127.0.0.1:6443
 +CoreDNS is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
 +Metrics-server is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy
 +
 +To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
 </code> </code>
 +\\
  
 +Danach kann mit weiteren Punten fortgesetzt werden.
 +
 +  * [[https://dwiki.heisl.org/doku.php?id=container:kubernetes:metallb|Metallb - Load Balancer]]
 +  * [[https://dwiki.heisl.org/doku.php?id=container:kubernetes:nfs_provisioner|NFS - Storage Provider]]
 +  * [[https://dwiki.heisl.org/doku.php?id=container:kubernetes:helm|Helm]]
 +
 +
 +\\
 +
 +==== Kubectl auf dem NGINX (Optional) ====
 +Natürlich ist es möglich via kubectl über den Loadbalancer den Cluster zu steuern. Zum Beispiel über den NGINX Server. \\
 +
 +Installation Kubectl
 +<code>
 +snap install kubectl --classic
 +</code>
 +\\
 +
 +K3s Config holen
 +<code>
 +Auf einer Master Node:
 +
 +cat /etc/rancher/k3s/k3s.yaml
 +
 +
 +Auf dem NGINX Server
 +mkdir -p ~/.kube
 +vim ~/.kube/config
 +
 +Einfügen der Config vom Master und ändern der "server" IP auf die IP vom NGINX Loadbalancer.
 +\\
 +
 +<code>
 +root@kubenginx:~# kubectl cluster-info
 +Kubernetes control plane is running at https://192.168.88.120:6443
 +CoreDNS is running at https://192.168.88.120:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
 +Metrics-server is running at https://192.168.88.120:6443/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy
 +
 +To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
 +</code>
 +\\
 +
 +Bachrc Setup
 +<code>
 +vim ~/.bashrc
 +
 +export KUBECONFIG=~/.kube/config
 +</code>
container/kubernetes/k3s_install_etcd.1608729465.txt.gz · Last modified: by stone