在尝试使用这些资源之前,我如何检查和/或等待apiVersion和种类的存在?
示例:
使用纤毛安装纤毛和网络策略
kubectl apply -f cilium.yaml
kubectl apply -f policy.yaml # fails if run just after installing cilium, since cilium.io/v2 and CiliumNetworkPolicy doesn't exist yethttps://github.com/cilium/cilium/blob/master/examples/kubernetes/1.13/cilium.yaml
policy.yaml
apiVersion: cilium.io/v2
description: example policy
kind: CiliumNetworkPolicy
...编辑:(用以下脚本解决)
#! /bin/bash
function check_api {
local try=0
local retries=30
until (kubectl "api-$1s" | grep -P "\b$2\b") &>/dev/null; do
(( ++try > retries )) && exit 1
echo "$2 not found. Retry $try/$retries"
sleep 3
done
}
kubectl apply -f cilium.yaml
check_api version cilium.io/v2
check_api resource CiliumNetworkPolicy
kubectl apply -f policy.yaml发布于 2019-01-18 09:50:43
您可以使用以下方法检查所支持的版本和种类,即检查与您交谈的API服务器所支持的是什么:
$ kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
...
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1还有一个kubectl api-resources,它为您提供了关于资源的种类、短名称以及是否有名称空间的表格式概述。
https://stackoverflow.com/questions/54250629
复制相似问题