Harvester configuratie

Na inloggen dienen eerst een aantal zaken ingesteld te worden voordat VM’s aangemaakt kunnen worden.

Netwerk

Als eerste het interne netwerk voor de VM’s. Kies bij de Harvester host voor ‘Edit Config‘ via de 3 puntjes rechts:

Kies hier voor de 2e netwerk interface:

Via het menu links, Advanced -> Settings kan de NIC voor het vlan ingesteld worden voor het Clusternetwerk:

Via Advanced in het menu kan nu bij Networks het VLAN id ingesteld worden:

Images

Images worden gebruikt om de VM’s in te richten. Deze kunnen ingesteld worden via de optie ‘Images‘ vanuit het menu:

  • Download via een URL
  • Upload via een lokaal bestand

Voor het gebruik van images bij het aanmaken van K8s clusters vanuit de Rancher Driver dient de image een cloud-image te zijn!

Het is ook mogelijk om een image te maken van een bestaand volume door deze te exporteren.

SSH keys

SSH keys kunnen ingesteld worden zodat deze gekozen kunnen worden als authorized key in een VM.

Templates

Via het menu Advanced -> Templates kunnen templates voor de VM’s geconfigureerd worden. Hier kunnen CPU, Memory, SSH key, volumes, OS image, network (type, MAC) en de cloud-config ingesteld worden. Als een cloudimg ISO gebruikt wordt kan via de cloud-config een gebruiker aangemaakt worden met een ssh-key om met ssh op de VM in te kunnen loggen. Tevens kan hiermee bv. docker of andere packages ingesteld worden. Ook kan via een netwerk-data de IP configuratie ingesteld worden. Bijvoorbeeld:

users:
  - name: rancher
    gecos: Rancher
    sudo: ALL=(ALL) NOPASSWD:ALL
    groups: users, admin, docker
    shell: /bin/bash
    lock_passwd: true
    ssh_authorized_keys:
      - >-
        ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLwkhz+gW.<snip>
write_files:
  - path: /etc/sysctl.d/10-disable-ipv6.conf
    permissions: '0644'
    owner: root
    content: |
      net.ipv6.conf.all.disable_ipv6 = 1
      net.ipv6.conf.default.disable_ipv6 = 1
      net.ipv6.conf.lo.disable_ipv6 = 1
      net.ipv6.conf.eth0.disable_ipv6 = 1
  - path: /etc/docker/daemon.json
    permission: '0644'
    owner: root
    content: |+
      {
        "exec-opts": ["native.cgroupdriver=systemd"],
        "log-driver": "json-file",
        "log-opts": {
          "max-size": "100m"
         },
        "storage-driver": "overlay2"
      }
apt:
  sources:
    docker.list:
      source: >-
        deb [arch=amd64] https://download.docker.com/linux/ubuntu $RELEASE
        stable
      keyid: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
packages:
  - docker-ce
  - docker-ce-cli
runcmd:
  - - timedatectl
    - set-timezone
    - Europe/Amsterdam

Virtual Machines

Nu kunnen VM’s gemaakt worden. Dit kan vanuit Templates of via Virtual Machines. Van virtual machines kan dan ook weer een template gekozen worden.

Op deze manier kunnen een aantal VM’s gemaakt worden om hiermee een Kubernetes cluster mee te maken met kubeadm of via Rancher voor ‘existing nodes‘.

Monitoring

Harvester installeert out-of-the-box monitoring met Prometheus en Grafana. In het dashboard wordt al een overzicht gegeven van de harvester nodes en de VM’s:

Volgende: Harvester CSI Driver