在Azure AKS中实现就绪和活跃性探针

时间:2020-01-17 20:14:13

标签: azure kubernetes-helm kubernetes-ingress azure-aks azure-kubernetes

我正在尝试遵循此文档,以在我的Pod上启用就绪和活跃性探针以进行群集中的健康检查,但是在连接到容器IP和端口的连接被拒绝时,这给了我一个错误。我在其中添加准备和活跃度的部分如下。

我正在使用helm进行部署,而我要监视的端口是80。下面也提供了用于入口的服务文件。

https://docs.microsoft.com/en-us/azure/application-gateway/ingress-controller-add-health-probes

Service.yaml

apiVersion: v1
kind: Service
metadata:
name: expose-portal 
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "{{ .Values.isInternal }}"
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: portal

Deployment.yaml

    spec:
  containers:
  - name: App-server-portal
    image: myacr-app-image-:{{ .Values.image_tag }}
    imagePullPolicy: Always      
    ports:
    - name: http
      containerPort: 80
      protocol: TCP
    readinessProbe:
      httpGet:
        path: /
        port: 80
      periodSeconds: 3
      timeoutSeconds: 1
    livenessProbe:
      httpGet:
        path: /
        port: 80
      periodSeconds: 3
      timeoutSeconds: 1
    volumeMounts:
    - mountPath: /etc/nginx
      readOnly: true
      name: mynewsite
  imagePullSecrets:
  - name: my-secret
  volumes:
  - name: mynewsite.conf
    configMap:
      name: mynewsite.conf
      items:
      - key: mynewsite.conf
        path: mynewsite.conf

我在这里做错什么了吗?截至目前,根据azure文档,当前不支持在非Pod上的端口上进行探测。我的理解是我的Pod上的端口80已经暴露。

1 个答案:

答案 0 :(得分:1)

摘自文档:

  1. initialDelaySeconds:启动容器后,启动活动性或就绪性探针之前的秒数。默认为0秒。最小值为0。
  2. periodSeconds:执行探测的频率(以秒为单位)。默认为10秒。最小值为1。
  3. timeoutSeconds:探测超时的秒数。默认为1秒。最小值为1。

https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes

解决方案是增加超时时间。

PS。我认为您可能需要引入initialDelaySeconds而不是将超时时间增加到3分钟