如何解决如何从 API 获取 Kubernetes 版本作为整数
我正在尝试通过 API 获取当前的 Kubernetes 版本,因为根据版本的不同,某些内容不受支持(例如,readyz 端点在 1.16 之前不可用,因此我想改为检查 healthz 端点)。
我找到了以下端点:/version
示例结果:
{
"major": "1","minor": "11+","gitVersion": "v1.11.0+d4cacc0","gitCommit": "d4cacc0","gitTreeState": "clean","buildDate": "2021-05-12T14:13:55Z","goVersion": "go1.10.8","compiler": "gc","platform": "linux/amd64"
}
这是通过 API 获取版本的正确方法吗?我认为 Kubernetes 使用语义版本控制,为什么小字符串中的“+”是?这个可以配置吗? 在哪里可以找到此 API/字段的规范?
理想情况下,这应该适用于独立和托管 Kubernetes 风格(Openshift、GKE...)。
解决方法
GitVersion
/gitVersion
是语义版本控制字段。
这是 kube-api-server
组件的版本。
解析由 regex 包中的 k8s.io/apimachinery 完成:
^\s*v?([0-9]+(?:\.[0-9]+)*)(.*)*$`
/version
端点是已记录的 API 规范 (operationId: "getCode"
) 的一部分,因此应该非常稳定。这是 kubectl version
使用的,所以我怀疑它会轻易改变。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。