Как найти и вызвать сервер kube-apiserver в k3s / k3d (с ситцем и без него)?

#kubernetes #kubectl #k3s #kube-apiserver #k3d

Вопрос:

Я хочу использовать kube-apiserver для включения/выключения контроллеров доступа (например kube-apiserver --enable-admission-plugins=NamespaceLifecycle ), но я нигде не могу его найти.

Когда я запускаю следующее, я нигде этого не вижу:

 # Running this:
kubectl get pods -n kube-system

# Shows only this:
# NAME                                       READY   STATUS      RESTARTS   AGE
# helm-install-traefik-fvs4z                 0/1     Completed   0          10d
# local-path-provisioner-5ff76fc89d-rrntw    1/1     Running     4          10d
# coredns-854c77959c-vz4s2                   1/1     Running     4          10d
# metrics-server-86cbb8457f-6kl5n            1/1     Running     4          10d
# svclb-traefik-cc7zx                        2/2     Running     8          10d
# calico-kube-controllers-5dc5c9f744-6bwdj   1/1     Running     4          10d
# calico-node-xcjz8                          1/1     Running     4          10d
# traefik-6f9cbd9bd4-b6nk7                   1/1     Running     4          10d
 

Я думал, что это может быть связано с использованием ситца, но даже создание кластера без ситца по-прежнему не показывает kube-apiserver :

 # Running this:
kubectl get pods -n kube-system

# Shows only this:
# NAME                                      READY   STATUS      RESTARTS   AGE
# local-path-provisioner-5ff76fc89d-d28gc   1/1     Running     0          2m31s
# coredns-854c77959c-lh78n                  1/1     Running     0          2m31s
# metrics-server-86cbb8457f-xlzl2           1/1     Running     0          2m31s
# helm-install-traefik-nhxp4                0/1     Completed   0          2m31s
# svclb-traefik-hqndx                       2/2     Running     0          2m21s
# traefik-6f9cbd9bd4-m42jg                  1/1     Running     0          2m21s
 

Где это kube-apiserver ? Как включить и отключить контроллеры в k3d?

Ответ №1:

Он не работает через статический модуль, поэтому он не отображается как модуль. С k3s вы обычно устанавливаете его как сервисный модуль systemd. С помощью k3d вы можете увидеть это через docker ps .

Комментарии:

1. Как бы я это назвал? Могу ли я exec войти в этот контейнер docker? И который же это? Я вижу два: rancher/k3d-proxy:v4.4.1 и rancher/k3s:v1.20.5-k3s1

2. Когда я вхожу в оба из них, например, я получаю терминал, но когда я набираю оба контейнера, говорят docker exec -it k3d-dev-server-0 /bin/sh kube-apiserver /bin/sh: kube-apiserver: not found

3. Я не понимаю вашего вопроса, вы ничего не называете, и я не думаю, что они включают оболочку в контейнер в качестве демона одного назначения. Это просто вещь, которая работает. Вы настраиваете его через его конфигурационный файл, хотя я на самом деле не уверен, сколько плагинов можно настроить, вам придется проверить их документы.

4. Это не «звонок», это не вопрос состояния. Вы должны включить это в командную строку при запуске. Каждый раз.

5. Правильный. Вам придется изменить аргументы CLI в любом конфигурационном файле, в котором они находятся, и перезапустить сервер kube-apiserver.