Внешний IP-адрес кластера AKS - Azure SDK для Python

У меня кластер aks развернут и назначен с внутренним ip, но без внешнего ip:

NAME               TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
kubernetes         ClusterIP      10.0.0.1      <none>           443/TCP        11h

Возможно, я поступаю неправильно, но цель состоит в том, чтобы создать внешние конечные точки для IP-адреса кластера. Будет ли правильный подход с использованием Python SDK создать балансировщик нагрузки службы? Мне не удалось найти для этого пакет Azure Python SDK. Некоторая помощь, пожалуйста.

Моя функция Python для создания кластера:

def create_cluster(node_count):
    cluster_resource = container_client.managed_clusters.create_or_update(
        resource_group,
        cluster_name,
        parameters=ManagedCluster(
            location='eastus',
            dns_prefix = dns_prefix,
            tags=None,
            service_principal_profile = self.service_principal_profile,
            agent_pool_profiles=[{
                'name': 'agentpool',
                'vm_size': 'Standard_DS2_v2',
                'count': 3,
            }],
        ),
    )
    return cluster_resource

1 ответ

Решение

Это не совсем правильный подход. Правильный подход - создание сервисов kubernetes типа LoadBalancer:

вид: Сервис

apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376
  type: LoadBalancer

это создаст балансировщик нагрузки и публичный IP-адрес для вас. Тема немного сложна, чтобы просто перейти по ней, но в основном kubernetes будет управлять этими внешними конечными точками для вас, вам нужно только объявить действительные примитивы kubernetes. Вы можете создать их заранее, но это действительно бессмысленно. Просто позволь кубернетесу сделать тяжелую работу.

Чтение:
https://kubernetes.io/docs/concepts/services-networking/service/

Другие вопросы по тегам