Kar*_*ter 5 kubernetes google-kubernetes-engine kubernetes-1.16 startup-probe
我创建了一个带有活跃度和就绪度探测器以及初始延迟的部署,效果很好。如果我想用启动探针替换初始延迟,则在使用 GKE 部署编辑器中的部署 yamlstartupProbe创建kubectl apply并在保存后从部署 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
---
Run Code Online (Sandbox Code Playgroud)
与krichter/microk8s-startup-probe-ignored:latest存在
FROM postgres:11
CMD sleep 30 && postgres
Run Code Online (Sandbox Code Playgroud)
我在 microk8s 的同一问题中重用了这个示例,我可以通过更改kubelet和kubeapi-server配置文件(如果您感兴趣,请参阅https://github.com/ubuntu/microk8s/issues/770)。我认为 GKE 集群不可能做到这一点,因为它们不公开这些文件,这可能是有充分理由的。
我认为该功能需要启用,因为它位于功能门之后。如何在版本 >= 1.16 的 Google Kubernetes Engine (GKE) 集群上启用它?目前我使用的是常规频道 1.16.8-gke.15 中的默认值。
正如我在评论中提到的,我能够在我的测试环境中重现相同的行为,经过一些研究,我找到了原因。
在 GKE 中,仅当您使用 Alpha 集群时才允许使用特征门。您可以在此处查看功能门的完整列表
我创建了一个 alpha 集群并应用了相同的 yaml,它对我有用,就在startupProbe那里。
因此,您将只能startupProbe在 GKE Alpha 集群中使用,请按照本文档创建一个新集群。
请注意 alpha 集群的限制:
- Alpha 集群有以下限制:
- GKE SLA未涵盖
- 无法升级
- 在 alpha 集群上禁用节点自动升级和自动修复
- 30天后自动删除
- 不接收安全更新
此外,Google 不建议用于生产工作负载:
警告:请勿将 Alpha 集群或 Alpha 功能用于生产工作负载。Alpha 集群在 30 天后到期,并且不会收到安全更新。您必须在数据过期之前从 Alpha 集群迁移数据。GKE 不会自动保存存储在 Alpha 集群上的数据。
| 归档时间: |
|
| 查看次数: |
1183 次 |
| 最近记录: |