我在k8s守护程序上工作,其部署需要根据k8s群集提供程序类型(gke、eks、aks、minikube、k3s、kind、在vm上使用kubeadm安装的自我管理k8s等)更改某些值。
如果已经配置了kubectl/kubeconfig
,那么确定k8s集群提供程序类型的正确方法是什么?
一个选项是使用kubectl配置当前上下文视图
:
CURRENT_CONTEXT_NAME="$(kubectl config current-context view)"
PLATFORM="self-managed"
autoDetectEnvironment(){
if [[ -z "$CURRENT_CONTEXT_NAME" ]]; then
echo "no configuration has been provided"
return
fi
echo "Autodetecting environment"
if [[ $CURRENT_CONTEXT_NAME =~ ^minikube.* ]]; then
PLATFORM="minikube"
elif [[ $CURRENT_CONTEXT_NAME =~ ^gke_.* ]]; then
PLATFORM="gke"
elif [[ $CURRENT_CONTEXT_NAME =~ ^kind-.* ]]; then
PLATFORM="kind"
elif [[ $CURRENT_CONTEXT_NAME =~ ^k3d-.* ]]; then
PLATFORM="k3d"
elif [[ $CURRENT_CONTEXT_NAME =~ ^kubernetes-.* ]]; then
PLATFORM="self-managed"
else
echo "No k8s cluster configured or unknown env!"
exit 2
fi
}
然而,这似乎是hacky,我确信它不会在所有情况下工作。例如,对于EKS,我不知道使用什么正则表达式。
是的,grepping gke为我工作$kubectl get nodes-o wide | awk'{print$1}| grep-e“gke”
,但是应该有一种更奇特的方式来获得云提供商,我也尝试了kubectl get nodes-o wide
,在OS-IMAGE专栏的输出中说提供商
~$ kubectl get nodes -o wide | awk '{print $8,$9,$10,$11}'
OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
Container-Optimized OS from Google
Container-Optimized OS from Google
Container-Optimized OS from Google
我的http://localhost:8080/上有一个jenkins,我创建了一个项目,该项目将运行kubectl命令,使用(minikube)连接到kubernetes集群 我正在尝试运行windows命令C:\Program Files(x86)\Jenkins\workspace\test2 这是Kubernetes主机正在运行的minikube群集信息https://192.168.99
随着库伯内特斯集群的启动和运行,并且能够通过ssh键访问master并在那里运行kubectl命令;我想在我的本地机器上运行kubectl命令。所以我尝试按照kubectl配置设置配置: 激活上下文: 当我运行kubectl命令时: 它返回: 与服务器localhost:8080的连接被拒绝-是否指定了正确的主机或端口?
我有一个在Azure上运行的kubernetes集群。从本地kubectl命令访问集群的方式是什么。我在这里提到过,但是在kubernetes主节点上没有kube配置文件。此外,kubectl配置视图在
我正在Kubernetes系统上配置Jenkins。建造起来很好。但为了部署,我们需要调用库贝特尔或赫尔姆。当前,我正在使用 Lachlanevenson/k8s-kubectl:v1.8.8 Lachlanevenson/K8S-Helm:最新 你能告诉我出了什么问题吗? 谢谢,
我们正在将ruby微服务迁移到kubernetes,我们过去在中保存特定于环境的配置。使用kubernetes,您可以为每个服务创建特定于环境的文件,例如等。 虽然kubernetes的pod配置文件能够保存环境变量,但您似乎不能在其中保存结构化数据。 例如,在中,我们有 在kubernetes中继续这种实践并在中打破环境是否合理,或者kubernetes是否有一些其他的最佳实践来为POD提供结构
我们使用 Giantswarm 开源的 kubernetes-promethues 来监控 kubernetes 集群,所有的 YAML 文件可以在 ../manifests/prometheus 目录下找到。 需要用到的镜像有: harbor-001.jimmysong.io/library/prometheus-alertmanager:v0.7.1 harbor-001.jimmysong.