Howto k0s

From Vidalinux Wiki
Jump to navigation Jump to search

installation

on archlinux use yay:

yay -S k0s-bin

on other distros:

curl -sSLf https://get.k0s.sh | sudo sh

edit config

export default config to file:

k0s default-config > ./k0s.yaml

edit the following settings:

apiVersion: k0s.k0sproject.io/v1beta1
kind: ClusterConfig
metadata:
  creationTimestamp: null
  name: k0s
spec:
  api:
    address: 192.168.75.2
    k0sApiPort: 9443
    port: 6443
    sans:
    - 192.168.75.2
  controllerManager: {}
  extensions:
    helm:
      repositories:
      - name: ingress-nginx
        url: https://kubernetes.github.io/ingress-nginx
      - name: metallb
        url: https://metallb.github.io/metallb
      charts:
      - name: ingress-nginx
        chartname: ingress-nginx/ingress-nginx
        version: "4.10.1"
        namespace: kube-system
      - name: metallb
        chartname: metallb/metallb
        version: "0.14.5"
        namespace: kube-system
        values: |2
          configInline:
            address-pools:
            - name: generic-cluster-pool
              protocol: layer2
              addresses:
              - 192.168.75.20-192.168.75.25
    storage:
      create_default_storage_class: false
      type: external_storage
  installConfig:
    users:
      etcdUser: etcd
      kineUser: kube-apiserver
      konnectivityUser: konnectivity-server
      kubeAPIserverUser: kube-apiserver
      kubeSchedulerUser: kube-scheduler
  konnectivity:
    adminPort: 8133
    agentPort: 8132
  network:
    calico: null
    clusterDomain: cluster.local
    dualStack: {}
    kubeProxy:
      iptables:
        minSyncPeriod: 0s
        syncPeriod: 0s
      ipvs:
        minSyncPeriod: 0s
        syncPeriod: 0s
        tcpFinTimeout: 0s
        tcpTimeout: 0s
        udpTimeout: 0s
      metricsBindAddress: 0.0.0.0:10249
      mode: iptables
    kuberouter:
      autoMTU: true
      hairpin: Enabled
      ipMasq: false
      metricsPort: 8080
      mtu: 0
      peerRouterASNs: ""
      peerRouterIPs: ""
    nodeLocalLoadBalancing:
      envoyProxy:
        apiServerBindPort: 7443
        konnectivityServerBindPort: 7132
      type: EnvoyProxy
    podCIDR: 10.244.0.0/16
    provider: calico
    serviceCIDR: 10.96.0.0/12
  scheduler: {}
  storage:
    etcd:
      externalCluster: null
      peerAddress: 192.168.75.2
    type: etcd
  telemetry:
    enabled: true

install single node cluster

iniciate installation:

k0s install controller -c k0s.yaml --single --no-taints
k0s start

verify status:

k0s status

verify node status:

k0s kubectl get nodes

copy kube admin credentials:

mkdir ~/.kube/ && cp /var/lib/k0s/pki/admin.conf ~/.kube/config

verify cluster pods status:

kubectl get po -A

uninstall

stop cluster:

k0s stop

reset configuration:

k0s reset

references