首页 > 解决方案 > AKS 群集外部 IP - 适用于 Python 的 Azure SDK

问题描述

我部署了一个 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

标签: azurekubernetesazure-aksazure-sdk-python

解决方案


这不是一个真正正确的方法。正确的方法是创建一个 LoadBalancer 类型的 kubernetes 服务:

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

这将为您创建一个负载均衡器和一个公共 IP 地址。主题有点复杂,直接跳到它上面,但基本上,kubernetes 会为你管理这些外部端点,你只需要声明有效的 kubernetes 原语。你可以预先创建这些,但这真的没有意义。让 kubernetes 做艰苦的工作。

阅读:
https ://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer


推荐阅读