Kubernetes — Установка и создание кластера

Для начала необходимо установить Docker.

Для корректной работы Kubernetes необходимо отключить SWAP

swapoff -a

Так же проверить удалить его с fstab

Добавим репозиторий Kubernetes и установим

Ubuntu:

apt update && apt install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF

apt update
apt install -y kubelet kubeadm kubectl

CentOS 7:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

setenforce 0

yum install -y kubelet kubeadm kubectl

Добавляем в автозапуск и запускаем:

systemctl enable kubelet && systemctl start kubelet

 

Инициализируем кластер Kubernetes:

kubeadm init --apiserver-advertise-address=1.2.3.4 --pod-network-cidr=10.244.0.0/16 --kubernetes-version stable-1.12
  • --apiserver-advertise-address - задает IP адрес, на который Kubernetes будет вещать API, по умолчанию "0.0.0.0"
  • --pod-network-cidr - для использования альтернативного приватного диапазона сети, по умолчанию "10.96.0.0/12"
  • --kubernetes-version - жестко задает определенную версию для кластера, по умолчанию "stable-1"

Если все успешно, то вы увидите примерно следующее:

Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of machines by running the following on each node
as root:

kubeadm join 1.2.3.4:6443 --token w70rla.kck3wg7lp85x8wlo --discovery-token-ca-cert-hash sha256:ea4a8a533dc61574e7794f7322ae2b29e531fd9f944d7e9f80e367ebd22e4470

Как понятно с вывода, необходимо от обычного пользователя (если вдруг нет такового, создайте) выполнить следующее:

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

Если нет обычного пользователя в системе, его необходимо создать с привилегией sudo:

useradd kubernetes -G sudo -m -s /bin/bash

 

У kubectl есть автодополнение, для этого в системе должен быть установлен пакет "bash-completion". Для оболочки bash необходимо выполнить следующее:

echo "source <(kubectl completion bash)" >> ~/.bashrc

Для MacOS или оболочки zsh можно посмотреть в документации Kubernetes.

 

Установим Flannel:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Перезапустим Kubernetes:

systemctl restart kubelet

 

Добавим еще ноду в наш кластер.

На ней предварительно повторив шаги установки Docker и Kubernetes, запустим их и на этом все, инициализация делается только на мастере при создании кластера.

От рута выполним команду, полученную на этапе инициализации кластера:

kubeadm join 1.2.3.4:6443 --token w70rla.kck3wg7lp85x8wlo --discovery-token-ca-cert-hash sha256:ea4a8a533dc61574e7794f7322ae2b29e531fd9f944d7e9f80e367ebd22e4470

Убедитесь, что нодам кластера разрешен доступ по порту 6443 TCP.

 

Теперь вернемся на мастер и от обычного уже пользователя можем посмотреть список нод в кластере:

kubectl get nodes

Задать роль ноде можно так:

kubectl label node NODE_NAME node-role.kubernetes.io/worker=worker
0 0 vote
Article Rating

Метки: Метки

Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments