如何在GKE 1.16上启用启动探针?

问题描述 投票:2回答:1

我创建了一个部署,其中包含了活力和准备度探针以及初始延迟,工作正常。如果我想用启动探针来替换初始延迟,则会出现以下问题 startupProbe 键及其嵌套的元素永远不会包含在使用 kubectl apply 并在保存后从GKE部署编辑器中的部署yaml中删除。

举个例子:

apiVersion: v1
kind: Namespace
metadata:
  name: "test"
---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres-sleep
  namespace: test
spec:
  selector:
    matchLabels:
      app: postgres-sleep
  replicas: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 50%
  template:
    metadata:
      labels:
        app: postgres-sleep
    spec:
      containers:
        - name: postgres-sleep
          image: krichter/microk8s-startup-probe-ignored:latest
          ports:
            - name: postgres
              containerPort: 5432
          readinessProbe:
            tcpSocket:
              port: 5432
            periodSeconds: 3
          livenessProbe:
            tcpSocket:
              port: 5432
            periodSeconds: 3
          startupProbe:
            tcpSocket:
              port: 5432
            failureThreshold: 60
            periodSeconds: 10
---

apiVersion: v1
kind: Service
metadata:
  name: postgres-sleep
  namespace: test
spec:
  selector:
    app: httpd
  ports:
    - protocol: TCP
      port: 5432
      targetPort: 5432
---

krichter/microk8s-startup-probe-ignored:latest

FROM postgres:11
CMD sleep 30 && postgres

我重用了这个例子,在microk8s的同样问题上,我可以通过更改 kubeletkubeapi-server 配置文件(见 https:/github.comubuntumicrok8sissues770。 以防你感兴趣)。) 我假设这在GKE集群中是不可能的,因为他们不暴露这些文件,可能是出于好的原因。

我假设这个功能需要启用,因为它在一个功能门后面。我如何在版本为>=1.16的Google Kubernetes Engine (GKE)集群上启用它?目前我使用的是常规渠道的默认版本1.16.8-gke.15。

kubernetes google-kubernetes-engine kubernetes-1.16 startup-probe
1个回答
1
投票

正如我在评论中提到的,我能够在我的测试环境中重现同样的行为,经过研究我找到了原因。

在GKE中,只有当你使用Alpha Cluster时才允许使用特征门。你可以看到一个完整的特征门的列表 此处

我已经创建了一个alpha集群,并应用了同样的yaml,对我来说,它的工作原理是这样的。startupProbe 是有的地方。

所以,你将只能使用 startupProbe 在GKE阿尔法集群中,请按照以下步骤进行。文件 来创建一个新的。

要注意阿尔法集群中的限制。

  • 阿尔法集群有以下限制。
  • 不包括在... GKE SLA
  • 不能升级
  • 在alpha集群上,节点自动升级和自动修复被禁用。
  • 30天后自动删除
  • 不接收安全更新

此外,谷歌不建议用于生产工作负载。

警告: 不要使用Alpha集群或alpha功能的生产工作负载。Alpha集群会在三十天后过期,并且不会收到安全更新。您必须在过期前将数据从阿尔法集群中迁移出来。GKE 不会自动保存存储在 Alpha 群集上的数据。

© www.soinside.com 2019 - 2024. All rights reserved.