【问题标题】:How to enable startup probe on GKE 1.16?如何在 GKE 1.16 上启用启动探测?
【发布时间】:2020-09-07 02:42:04
【问题描述】:

我创建了一个带有活动性和就绪性探测以及初始延迟的部署,效果很好。如果我想用启动探测替换初始延迟,则使用 kubectl apply 创建时,startupProbe 键及其嵌套元素永远不会包含在部署描述符中,并在保存后从 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.com/ubuntu/microk8s/issues/770)。我认为这对于 GKE 集群是不可能的,因为它们不会公开这些文件,这可能是有充分理由的。

我假设该功能需要启用,因为它位于功能门之后。如何在版本 >= 1.16 的 Google Kubernetes Engine (GKE) 集群上启用它?目前我正在使用常规频道 1.16.8-gke.15 的默认值。

【问题讨论】:

    标签: kubernetes google-kubernetes-engine kubernetes-1.16 startup-probe


    【解决方案1】:

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

    在 GKE 中,仅当您使用 Alpha 集群时才允许使用功能门。你可以看到功能门的完整列表here

    我创建了一个 alpha 集群并应用了相同的 yaml,它对我有用,startupProbe 就在那里。

    因此,您将只能在 GKE Alpha 集群中使用 startupProbe,请按照此 documentation 创建一个新集群。

    注意 alpha 集群的限制:

    • Alpha 集群有以下限制:
    • GKE SLA 未涵盖
    • 无法升级
    • 在 alpha 集群上禁用节点自动升级和自动修复
    • 30 天后自动删除
    • 不接收安全更新

    此外,Google 不建议将其用于生产工作负载:

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

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 2022-01-06
      • 2017-11-06
      • 2019-03-29
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      相关资源
      最近更新 更多