Подключение Windows Server 2019 к Kubernetes кластеру в качестве рабочего узла

Windows Server Docker Kubernetes k8s

Цели и задачи

  1. установить Docker на Ubuntu 18.04 LTS (будет использована как мастер узел)
  2. установить Docker на Windows Server 2019 (1809) (будет использоваться как рабочий узел)
  3. установить Kubernetes на мастер узле
  4. добавить в Kubernetes узел на базе Windows Server 2019 (1809)
  5. настроить Active Directory для использования gMSA
  6. настроить Kubernetes для использования gMSA
  7. запустить Pod от имени gMSA в Kubernetes

Подключение Windows Server к кластеру

Для начала нам необходиом скачать 3 файла:

  1. Kubeclustervxlan.json
  2. KubeCluster.ps1
  3. KubeClusterHelper.psm1

Теперь отредактируем файл Kubeclustervxlan.json

    "ControlPlane" : {  // Contains values associated with Kubernetes control-plane ("Master") node
        "IpAddress" : "kubemasterIP",  // IP address of control-plane ("Master") node
        "Username" : "localadmin",  // Username on control-plane ("Master") node with remote SSH access  
        "KubeadmToken" : "token",  // Kubeadm bootstrap token
        "KubeadmCAHash" : "discovery-token-ca-cert-hash"  // Kubeadm CA key hash
    },

И последние 2 заклинания:

.\KubeCluster.ps1 -ConfigFile .\Kubeclustervxlan.json -install 
.\KubeCluster.ps1 -ConfigFile .\Kubeclustervxlan.json -join

Результат шаманства будет выведен на экран:

  1. или всё хорошо и мы у цели;
  2. или что-то пошло не так.

PS: На момент написания этой статьи flannel имел версию 0.11.0 и имел баг с liveness/readiness пробами. В качестве фикса можно использовать то, что написано тут.