Перейти к содержанию

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

Для подключения личного устройства к кластеру k8s требуется выполнить следующее:

laptop
│ kubectl
│ ~/.kube/config
│ HTTPS :6443
192.168.64.11
kube-apiserver
Kubernetes

1. Сначала проверяем доступность API Server с личный устройством

ping <ip control plane>
nc -vz <ip control plane> 6443

Нужно получить что-то вроде:

Connection to <ip control plane> port 6443 [tcp/*] succeeded!

2. Установить kubectl на ваше устройство

документация по установке kubectl


3. Забираем kubeconfig с control plane

На Control plane kubeadm создал:

/etc/kubernetes/admin.conf

именно его нам нужно перенести на наше устройство

создаем директорию на вашем устройстве:

mkdir -p ~/.kube

Далее нам нужно перенести admin.conf из control plane на наше устройство, но есть одна преграда

перенос admin.conf на личное устройство

файл admin.conf на control plane имеет права root и если вы работаете не от него, то при копировании/попытке открыть его будете получать Permission denied

Поэтому изменяем владельца файла:

sudo chmod 666 /etc/kubernetes/admin.conf

Затем копируем на личное устройство:

scp devops@192.168.64.11:/home/devops/admin.conf ~/.kube/config

4. Проверяем, куда наше устройство собирается подключаться

kubectl config view --minify
kubectl config current-context

Самое важное Server должен указывать на адрес Control Plane

https://<ip CP>:6443

5. Проверяем работу с кластером с личного устройства

kubectl get nodes

Что мы сделали

Mac
└── kubectl
      │ Kubernetes API
Control Plane
└── kube-apiserver :6443
      ├── etcd
      ├── scheduler
      ├── controllers
      └── kubelets → Nodes

kubectl не использует SSH для конекта к Control Plane, он отправляет HTTPS запрос в kube-api-server:6443, используя credentials из ~/.kube/config.