Контейнерная среда Kubernetes предоставляет несколько важных ресурсов для контейнеров, один из них:
- Список всех служб, которые работали, когда Созданный контейнер доступен для этого контейнера как переменные среды. Эти переменные среды соответствуют синтаксису Docker ссылок.
Для службы с именем foo
, которая сопоставляется с контейнером с именем bar , определены следующие переменные:
FOO_SERVICE_HOST=0.0.0.0
(IP-адрес службы foo
)
FOO_SERVICE_PORT=65535
(порт службы foo
)
XXX_SERVICE_PORT
генерируется автоматически на основе сервисов, доступных для контейнера на момент его создания.
При развертывании контейнера в kube-системе вы можете увидеть fqdn используемого api мастерноды. При создании пространства имен и развертывании того же контейнера это служба kubernetes с внутренним IP-адресом для переменной среды KUBERNETES_SERVICE_HOST.
- Он должен работать в обоих направлениях, потому что служба
kubernetes.default
является ретранслятором агента к главному API, взгляните на описание службы:
$ k describe svc kubernetes
Name: kubernetes
Namespace: default
Labels: component=apiserver
provider=kubernetes
Annotations: <none>
Selector: <none>
Type: ClusterIP
IP: 10.21.0.1
Port: https 443/TCP
TargetPort: 443/TCP
Endpoints: 10.54.240.1:443
Session Affinity: None
Events: <none>
$ kubectl cluster-info
Kubernetes master is running at https://10.54.240.1
- Конечная точка службы
kubernetes.default
является IP-адресом главного API, поэтому, если ваше развертывание не работает должным образом, у него может быть другая проблема под капотом.
Вы также можете следовать инструкциям, приведенным в ответе @djsly, и открыть проблему на пром-op github, проголосовать за podPreset
чтобы стать доступным на AKS или даже поэкспериментировать с другими облачными провайдерами (например, GCP предлагает бесплатный уровень, чтобы вы могли попробовать).
Если у вас есть дополнительные вопросы, дайте нам знать.