У LoadBalancer-а адрес EXTERNAL-IP бесконечно pending
Разбирал полгода назад лекции по Kubernetes для чайников, всё получалось. Сейчас спустя некоторое время пытаюсь освежить знания, но почему-то появились ошибки.
Зарегистрирован в облаке YandexCloud. Платёжный аккаунт в статусе Active.
Конфиг файл такой:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-web-deployment
labels:
app: my-k8s-deployment
spec:
replicas: 3
selector:
matchLabels:
project: app1
template:
metadata:
labels:
project: app1
spec:
containers:
- name: app1-web
image: adv4000/k8sphp:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: my-single-pod-service
labels:
env: prod
owner: AlexVld
spec:
selector:
project: app1
ports:
- name: app-listener
protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
Далее запускаю данный конфиг, чтобы создать поды, деплоймент и сервис:
kubectl apply -f service-1-loadbalancer-single.yaml
Вот тут проблема с сервисом. Для сервиса my-single-pod-service типа LoadBalancer должно выставиться значение у External-IP. Я это значение должен вставить в браузер и увидеть простенькое приложение на php. Но у меня pending бесконечно долго и не дождусь как установится.
Причём, как я писал в начале, я это всё уже проделывал несколько месяцев назад. И сейчас делаю по своим старым записям в блокноте. Раньше этой проблемы не было, сейчас появилась. Может в самом сервисе YandexCloud какие-то изменения произошли?
Ответы (2 шт):
В итоге нашёл в документации Яндекс.Облака, что при создании кластера нужны сервисные аккаунты с ролями editor и container-registry.images.puller , либо можно обе эти роли объединить в одном сервисном аккаунте.
Создал правильный сервисный аккаунт:

И заново создал кластер и узлы, указывая именно этот аккаунт. И в итоге всё заработало.
Роль editor довольно широкая и не всегда хочется выдавать её. На самом деле для создания внешнего балансировщика нагрузки не хватало роли vpc.publicAdmin. Именно она позволяет создавать и удалять публичные IP-адреса. https://cloud.yandex.ru/docs/iam/concepts/access-control/roles#vpc-public-admin
