Kubernetes - 2022 sügis

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

TODO

Rancher Management Cluster on Docker

Käivitamine

docker run -d --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  --privileged \
  rancher/rancher:latest

kus

  • TODO

Jälgida käivitumist, kulub mitu minutit

root@tf-vm-1:~# docker logs -f practical_mcnulty

Seejärel pöörduda webgui haldusliidese poole, https://192.168.110.11/

Kasulikud lisamaterjalid

Node tekitamine

Node driver - https://github.com/lnxbil/docker-machine-driver-proxmox-ve/releases/download/v4/docker-machine-driver-proxmoxve.linux-amd64

https://github.com/rancher/os/releases aadressilt saab kopeerida

https://github.com/rancher/os/releases/download/v1.5.8/rancheros-proxmoxve-autoformat.iso

Template, defaultist erinevad

  • debugDriver - linnutada
  • debugResty - linnutada
  • provisionStrategy - cdrom
  • proxmoxHost - 192.168.110.250
  • proxmoxNode - pm-kns
  • proxmoxPool - vaiki
  • proxmoxRealm - pam
  • proxmoxUserName - root
  • proxmoxUserPassword - parool
  • sshPassword - tühi (tundub, et toimib rancheos default)
  • sshPort - 22
  • sshUsername - tühi (tundub, et toimib rancheos default)
  • vmCloneFull - 2
  • vmCloneVmid - tühi
  • vmCpu -
  • vmCpuCores - 1
  • vmCpuSockets - 4
  • vmImageFile - local:iso/rancheros-proxmoxve-autoformat.iso
  • vmMemory - 4
  • vmNetBridge - vmbr0
  • vmNetFirewall - 0
  • vmNetModel - virtio
  • vmNetTag - 0
  • vmScsiController - virtio-scsi-pci
  • vmStoragePath - sn_data (tundub, et peab olema proxmox Directory tüüpi)
  • vmStorageSize - 32
  • vmStorageType - QCOW2

ja sama json kujul

{
"annotations": {
"ownerBindingsCreated": "true"
},
"baseType": "nodeTemplate",
"cloudCredentialId": null,
"created": "2022-10-26T22:51:41Z",
"createdTS": 1666824701000,
"creatorId": "user-7rrms",
"driver": "proxmoxve",
"engineEnv": { },
"engineInstallURL": "https://releases.rancher.com/install-docker/20.10.sh",
"engineLabel": { },
"engineOpt": { },
"engineRegistryMirror": [ ],
"id": "cattle-global-nt:nt-d9w8b",
"labels": {
"cattle.io/creator": "norman"
},
"links": {
"nodePools": "…/v3/nodePools?nodeTemplateId=cattle-global-nt%3Ant-d9w8b",
"nodes": "…/v3/nodes?nodeTemplateId=cattle-global-nt%3Ant-d9w8b",
"self": "…/v3/nodeTemplates/cattle-global-nt:nt-d9w8b",
"update": "…/v3/nodeTemplates/cattle-global-nt:nt-d9w8b"
},
"logOpt": { },
"name": "tmplimre",
"principalId": "local://user-7rrms",
"proxmoxveConfig": {
"debugDriver": true,
"debugResty": true,
"provisionStrategy": "cdrom",
"proxmoxHost": "192.168.110.250",
"proxmoxNode": "pm-kns",
"proxmoxPool": "vaiki",
"proxmoxRealm": "pam",
"proxmoxUserName": "root",
"proxmoxUserPassword": "parool",
"sshPassword": "",
"sshPort": "22",
"sshUsername": "",
"vmCienabled": "",
"vmCitype": "",
"vmCloneFull": "2",
"vmCloneVmid": "",
"vmCpu": "",
"vmCpuCores": "1",
"vmCpuSockets": "2",
"vmImageFile": "local:iso/rancheros-proxmoxve-autoformat.iso",
"vmMemory": "2",
"vmNetBridge": "vmbr0",
"vmNetFirewall": "0",
"vmNetModel": "virtio",
"vmNetMtu": "",
"vmNetTag": "0",
"vmNuma": "",
"vmProtection": "",
"vmScsiAttributes": "",
"vmScsiController": "virtio-scsi-pci",
"vmStartOnboot": "",
"vmStoragePath": "sn_data",
"vmStorageSize": "12",
"vmStorageType": "QCOW2",
"vmVmidRange": ""
},
"state": "active",
"storageOpt": { },
"transitioning": "no",
"transitioningMessage": "",
"type": "nodeTemplate",
"useInternalIpAddress": true,
"uuid": "a6c62f53-9316-41bb-8242-2d641988e522"
}

Rancher hallatud klastriga suhtlemine kubectl utiliidiga

Rancher hallatud klastriga töökohaarvutist käsurealt st kubectl utiliidi abil suhtlemiseks tuleb esmalt kopeerida kubectl utiliit

TODO

Seejärel Rancher webgui liidesest kopeerida klastri seadistus

TODO

ja klastri poole pöördumiseks öelda

$ /home/imre/kubectl --kubeconfig /home/imre/Downloads/clubu1.yaml get all --all-namespaces -o wide
NAMESPACE             NAME                                               READY   STATUS      RESTARTS      AGE     IP               NODE     NOMINATED NODE   READINESS GATES
cattle-fleet-system   pod/fleet-agent-bfc5655cc-crbl6                    1/1     Running     0             10m     10.42.0.12       clubu1   <none>           <none>
cattle-system         pod/cattle-cluster-agent-674cc68d59-zgrkq          1/1     Running     1 (11m ago)   14m     10.42.0.5        clubu1   <none>           <none>
cattle-system         pod/cattle-node-agent-n56dp                        1/1     Running     0             14m     192.168.110.13   clubu1   <none>           <none>
cattle-system         pod/helm-operation-7vpbz                           0/2     Completed   0             9m36s   10.42.0.13       clubu1   <none>           <none>

...

MetalLB load balanceri ja NginX ingress kontrolleri kasutamine

Paigaldamine

$ /home/imre/kubectl --kubeconfig /home/imre/Downloads/clc.yaml apply -f \
  https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml

Tulemusena käivitatakse mitmesugused tegevused

imre@moraal:~/postgres-operator$ /home/imre/kubectl --kubeconfig /home/imre/Downloads/clc.yaml get all -n metallb-system 
NAME                              READY   STATUS    RESTARTS   AGE
pod/controller-6c58495cbb-qnb8h   1/1     Running   0          2d15h
pod/speaker-lpkf9                 1/1     Running   0          2d15h

NAME                      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
service/webhook-service   ClusterIP   10.43.195.140   <none>        443/TCP   2d15h

NAME                     DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
daemonset.apps/speaker   1         1         1       1            1           kubernetes.io/os=linux   2d15h

NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/controller   1/1     1            1           2d15h

NAME                                    DESIRED   CURRENT   READY   AGE
replicaset.apps/controller-6c58495cbb   1         1         1       2d15h

Tekitada aadresside pool mida metallb kasutab teenuste jaoks

$ cat ipaddress_pools.yaml 
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: production
  namespace: metallb-system
spec:
  addresses:
  - 192.168.110.131-192.168.110.135

---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: l2-advert
  namespace: metallb-system

Tekitamiseks sobib öelda

$ kubectl apply -f  ~/metallb/ipaddress_pools.yaml
ipaddresspool.metallb.io/production created
l2advertisement.metallb.io/l2-advert created

Tulemust on võimalik vaadelda nt Rancher webgui keskkonnas valides

TODO

Kasulikud lisamaterjalid

NginX ingress kontroller

TODO

Leida Rancher webgui pealt

Service: ingress-nginx-controller

ning pressida Edit YAML ning muuta

spec.type -> LoadBalancer

Kasulikud lisamaterjalid

Kasulikud lisamaterjalid