通过Azure Kubernetes群集上的公共IP公开Python应用程序的简单方法

问题描述

我已经使用terraform在AKS上部署了K8s集群。我无法公开与LoadBalancer一起使用的Python服务。以下是我的文件

集群信息:
Kubernetes版本:1.19.0
正在使用的云:Azure
安装方法terraform

deployment.yml

apiVersion: v1
kind: Namespace
Metadata:
  name: identity
  namespace: default
---
apiVersion: v1
kind: Service
Metadata:
  name: identity-svc
  namespace: default
  labels:
    name: identity-svc
    env: dev
    app: identity-svc
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-resource-group: MC_identity-k8s-rg_identity-k8s-aks_westeurope
spec:
  type: LoadBalancer 
  ports:
  - name: http
    port: 80
    targetPort: 8000
  selector:
    app: identity-svc
---
apiVersion: v1
data:
  .dockerconfigjson: 50aXR5MngwIn19fQ...
kind: Secret
Metadata:
  creationTimestamp: null
  name: acr-secret
  namespace: default
type: kubernetes.io/dockerconfigjson
---
apiVersion: apps/v1
kind: Deployment
Metadata:
  name: identity-deploy
  namespace: default
  labels:
    name: identity-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: identity-svc
  template:
    Metadata:
      namespace: default
      labels:
        app: identity-svc
    spec:
      imagePullSecrets:
        - name: acr-secret
      containers:
      - name: identityservice
        image: identityservice.azurecr.io/identityservice:${{ github.run_id }}
        env:
          - name: SECRET_KEY
            value: ${secrets.SECRET_KEY}
          - name: ALLOWED_HOSTS
            value: ${secrets.ALLOWED_HOSTS}
          - name: DATABASE_HOST
            value: ${secrets.DATABASE_HOST}
          - name: DEBUG
            value: true
        resources:
          requests:
            cpu: 0.5
            memory: "500Mi"
          limits:
            cpu: 2
            memory: "1000Mi"
        ports:
        - containerPort: 8000
          name: http
        imagePullPolicy: Always
      restartPolicy: Always

service.yml

apiVersion: v1
kind: Service
Metadata:
  name: identity-svc
  namespace: default
  labels:
    name: identity-svc
    env: dev
    app: identity-svc
spec:
  selector:
    app: identity-svc
  type: LoadBalancer 
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8000
    name: http

当我检查kubectl日志时,我看到pod,服务,端点按预期运行。但是,如下所示的外部IP无法加载Python应用。

NAME           TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)          AGE
identity-svc   LoadBalancer   10.0.145.221   51.105.173.89   80:31723/TCP   95m
kubernetes     ClusterIP      10.0.0.1       <none>          443/TCP          134m

在这里想念什么?我看到的唯一奇怪的是以下内容

admin@Azure:~$ nslookup identity-svc
Server:         168.63.129.16
Address:        168.63.129.16#53
** server can't find identity-svc: NXDOMAIN

我的最终目标是将我的应用暴露在外部IP上进行测试。

我也尝试实现Nginx入口,您可以看到有关该here

的帖子

非常感谢您的帮助,如果需要,我们很乐意提供其他信息。谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...