Kubernetes. Часть 3: Установка Kubernetes на Ubuntu 18.04

Docker Ubuntu Kubernetes

Отключаем swap

Перед тем, как начать, надо отключить swap. Редактируем /etc/fstab и удаляем там все что связано со swap'ом. Затем запускаем:

sudo swapoff –a

Сейчас мы готовы начать.

Установка kubelet kubeadm kubectl:

sudo apt-get update && sudo apt-get install -y apt-transport-https curl

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

sudo apt-get update

sudo apt-get install -y kubelet kubeadm kubectl

sudo apt-mark hold kubelet kubeadm kubectl

Инициализация кластера:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Если все успешно, то копируем kubeconfig, предварительно сохранив токен и хеш для подключения к кластеру. Токен и хеш на текущий момент должны отображаться на экране.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Настройка сети:

sudo sysctl net.bridge.bridge-nf-call-iptables=1
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Редактируем файл kube-flannel.yml и приводим в соответствие с следующим фрагментом:

cni-conf.json: |
    {
      "name": "vxlan0",
      "plugins": [
        {
          "type": "flannel",
          "delegate": {
            "hairpinMode": true,
            "isDefaultGateway": true
          }
        },
        {
          "type": "portmap",
          "capabilities": {
            "portMappings": true
          }
        }
      ]
    }
net-conf.json: |
    {
      "Network": "10.244.0.0/16",
      "Backend": {
        "Type": "vxlan",
        "VNI" : 4096,
        "Port": 4789
      }
    }

Отправляем файл в kubernetes:

kubectl apply -f kube-flannel.yml
wget https://raw.githubusercontent.com/microsoft/SDN/1d5c055bb195fecba07ad094d2d7c18c188f9d2d/Kubernetes/flannel/l2bridge/manifests/node-selector-patch.yml
kubectl patch ds/kube-flannel-ds-amd64 --patch "$(cat node-selector-patch.yml)" -n=kube-system

Осталось проверить что все работает:

kubectl get nodes -o wide

Оглавление

  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