User Tools

Site Tools


container:kubernetes:k3s_install

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 [2020/12/21 14:05] – [Worker Nodes hinzufügen] stonecontainer:kubernetes:k3s_install [2021/01/12 10:50] (current) stone
Line 1: Line 1:
 ====== Kubernetes via K3s installieren ====== ====== Kubernetes via K3s 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\\ 
 +  * Node1 -> Master & Worker 
 +  * Node2 -> Worker 
 +  * Node3 -> Worker
 \\ \\
  
Line 69: Line 72:
 \\ \\
  
-===== Installation Loadbalancer ===== 
-Bei der Installation von K3s haben ich den Traefik LB ausgenommen und es wird der Metallb installiert da dieses System nicht in einer Cloud durchgeführt wird. \\ 
  
-Die aktuelle Manifest'e kann man sich auf der [[https://metallb.universe.tf/installation/|Hersteller Seite]] ansehen und runerladen. 
-<code> 
-Auf der Master Node: 
-kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.5/manifests/namespace.yaml 
-kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.5/manifests/metallb.yaml 
  
-# On first install only 
-kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)" 
-</code> 
-\\ 
  
-Netzwerk Infos für den LB konfigurieren 
-<code> 
-Auf der Master Node: 
  
-nano metallb_network.yaml 
-apiVersion: v1 
-kind: ConfigMap 
-metadata: 
-  namespace: metallb-system 
-  name: config 
-data: 
-  config: | 
-    address-pools: 
-    - name: address-pool-1 
-      protocol: layer2 
-      addresses: 
-      - 192.168.88.124-192.168.88.130 
- 
- 
-kubectl apply -f metallb_network.yaml 
-</code> 
-\\ 
- 
-Es ist auch möglich via Subnet das Netz einzustellen 
-<code> 
-addresses: 
-      - 192.168.88.0/26 
-</code> 
-\\ 
- 
-===== Test Container ===== 
-Test container um den LB zu testen 
- 
-<code> 
-Auf dem Master: 
- 
-kubectl create deployment my-nginx --image=nginx 
-kubectl expose deployment my-nginx --name=my-nginx --port=80 --type=LoadBalancer 
- 
-root@kube01:~# kubectl get svc 
-NAME         TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE 
-kubernetes   ClusterIP      10.43.0.1     <none>           443/TCP        64m 
-my-nginx     LoadBalancer   10.43.2.242   192.168.88.124   80:31200/TCP   59m 
- 
-root@kube01:~# curl -I http://192.168.88.124 
-HTTP/1.1 200 OK 
-Server: nginx/1.19.5 
-Date: Thu, 26 Nov 2020 10:19:05 GMT 
-Content-Type: text/html 
-Content-Length: 612 
-Last-Modified: Tue, 24 Nov 2020 13:02:03 GMT 
-Connection: keep-alive 
-ETag: "5fbd044b-264" 
-Accept-Ranges: bytes 
-</code> 
- 
-\\ 
- 
-===== NFS Storage Provider ===== 
-Die nötigen Yaml Files runter laden 
- 
-<code> 
-wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/raw/master/deploy/rbac.yaml 
-wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/raw/master/deploy/class.yaml 
-wget https://raw.githubusercontent.com/kubernetes-sigs/nfs-subdir-external-provisioner/master/deploy/deployment.yaml 
- 
-Für ARM 
-wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/blob/master/deploy/deployment-arm.yaml 
-</code> 
-\\ 
- 
-==== Anpassen der Files ==== 
-Es muss das File deployment.yaml oder deployment-arm.yaml angepasst werden. 
- 
-<code> 
-.. 
-... 
-          env: 
-            - name: PROVISIONER_NAME 
-              value: fuseim.pri/ifs 
-            - name: NFS_SERVER 
-              value: <IP or FQDN> 
-            - name: NFS_PATH 
-              value: <NFS EXPORT PATH> 
-      volumes: 
-        - name: nfs-client-root 
-          nfs: 
-            server: <IP or FQDN> 
-            path: <NFS EXPORT PATH> 
-... 
-.. 
-</code> 
-\\ 
- 
-==== Einspielen der Files ==== 
-<code> 
-kubectl create -f rbac.yaml 
-kubectl create -f deployment.yaml 
-kubectl create -f class.yaml 
-</code> 
-\\ 
- 
-==== Storage Class anzeigen ==== 
-<code> 
-root@kube01:~/nfs# kubectl get storageclasses.storage.k8s.io 
-NAME                   PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE 
-local-path (default)   rancher.io/local-path   Delete          WaitForFirstConsumer   false                  2d6h 
-managed-nfs-storage    fuseim.pri/ifs          Delete          Immediate              false                  2d5h 
-</code> 
-===== Helm ===== 
-Helm unter K3s 
-\\ 
- 
-==== Helm installieren und ENV setzten ==== 
-<code> 
-snap install helm --classic 
-export KUBECONFIG=/etc/rancher/k3s/k3s.yaml 
-helm ls --all-namespaces 
-</code> 
-\\ 
- 
-Kubeconfig beim Login automatisch setzten 
-<code> 
-vim ~/.bashrc 
- 
-export KUBECONFIG=/etc/rancher/k3s/k3s.yaml 
-</code> 
-\\ 
container/kubernetes/k3s_install.1608559502.txt.gz · Last modified: by stone