首页 > 解决方案 > azure中的visual studio kubernetes项目503错误

问题描述

我在 Visual Studio 2019 中使用默认模板创建了一个 kubernetes 项目。此模板创建一个 WeatherForecast 控制器。之后,我将其发布到我的 ARC。

我使用此命令创建 AKS:

az aks create -n $MYAKS -g $MYRG --generate-ssh-keys --z 1 -s Standard_B2s --attach-acr /subscriptions/mysubscriptionguid/resourcegroups/$MYRG/providers/Microsoft.ContainerRegistry/registries/$MYACR

我通过 azure 门户启用了 HTTP 应用程序路由。

我已将其部署到 azure kubernetes (Standard_B2s),使用以下 deployment.yaml:

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kubernetes1-deployment
  labels:
    app: kubernetes1-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: kubernetes1
  template:
    metadata:
      labels:
        app: kubernetes1
    spec:
      containers:
      - name: kubernetes1
        image: mycontainername.azurecr.io/kubernetes1:latest
        ports:
        - containerPort: 80

服务.yaml:

#service.yaml
apiVersion: v1
kind: Service
metadata:
  name: kubernetes1
spec:
  type: ClusterIP
  selector:
    app: kubernetes1
  ports:
    - port: 80 # SERVICE exposed port
      name: http # SERVICE port name
      protocol: TCP # The protocol the SERVICE will listen to
      targetPort: http # Port to forward to in the POD

入口.yaml:

#ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: kubernetes1
  annotations:
    kubernetes.io/ingress.class: addon-http-application-routing
spec:
  rules:
    - host: kubernetes1.<uuid (removed for this post)>.westeurope.aksapp.io # Which host is allowed to enter the cluster
      http:
        paths:
          - backend: # How the ingress will handle the requests
              service:
               name: kubernetes1 # Which service the request will be forwarded to
               port:
                 name: http # Which port in that service
            path: / # Which path is this rule referring to
            pathType: Prefix # See more at https://kubernetes.io/docs/concepts/services-networking/ingress/#path-types

但是当我转到 kubernetes1..westeurope.aksapp.io 或 kubernetes1..westeurope.aksapp.io/WeatherForecast 时,我收到以下错误:

503 Service Temporarily Unavailable
nginx/1.15.3

标签: kuberneteskubernetes-ingressazure-aks

解决方案


它现在正在工作。对于其他有同样问题的人。我已从以下位置更新了我的部署配置:

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kubernetes1-deployment
  labels:
    app: kubernetes1-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: kubernetes1
  template:
    metadata:
      labels:
        app: kubernetes1
    spec:
      containers:
      - name: kubernetes1
        image: mycontainername.azurecr.io/kubernetes1:latest
        ports:
        - containerPort: 80

至:

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kubernetes1
spec:
  selector: # Define the wrapping strategy
    matchLabels: # Match all pods with the defined labels
      app: kubernetes1 # Labels follow the `name: value` template
  template: # This is the template of the pod inside the deployment
    metadata:
      labels:
        app: kubernetes1
    spec:
      nodeSelector:
        kubernetes.io/os: linux
      containers:
        - image: mycontainername.azurecr.io/kubernetes1:latest
          name: kubernetes1
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 250m
              memory: 256Mi
          ports:
            - containerPort: 80
              name: http

我不知道究竟哪条线解决了这个问题。如果您知道问题出在哪一行,请随时发表评论。


推荐阅读