我有一个在 minikube 中运行的 Kubernetes 集群,我想通过 Kubernetes API 过滤掉所有 Logstash pod。Kubernetes API 文档有点令人困惑,我做了一些研究,发现我可以使用这样的东西,但到目前为止我还没有成功:
localhost:8000/api/v1/namespaces/default/pods?labelSelector=logstash
Run Code Online (Sandbox Code Playgroud)
有什么想法如何检索这个吗?任何帮助将非常感激。
我认为我的重点是如何使用这个配置参数 - “controlPlaneEndpoint”。\n目前使用“controlPlaneEndpoint”有问题。\n https://kubernetes.io/docs/setup/independent/high-availability/
\n\n真心希望您能耐心看看我的实际情况。
\n\n首先,配置参数“controlPlaneEndpoint”是vip还是负载均衡,对吧?\n所以,我将\xe2\x80\x9ccontrolPlaneEndpoint\xe2\x80\x9d配置为4层负载均衡;我尝试了aws\\ali。\n所有结果显示在使用过程中都会有概率超时,并且在使用kubeadm安装过程中100%出现“nodexxx not found”。
\n\n为什么会出现这种情况?\n如果我在参数-“controlPlaneEndpoint”中使用4层负载均衡,就会出现网络问题。\n比如我有3个master,ServerA\xe3\x80\x81ServerB\xe3\x80\x81ServerC,我在 serverA 上输入命令 \xe2\x80\x9dkubectl get pod\xe2\x80\x9c 。超时的可能性为 33%。\n当 serverA 请求通过 4 层负载平衡定向到 ServerB 或 ServerC 时,一切正常。\n如果请求通过 4 层负载平衡定向到 ServerA 本身,则超时为必然会发生。
\n\n因为当 ServerA 既是服务器又是请求者时,无法使用 4 层负载均衡。\n这就是 4 层负载均衡的网络特性。\n同样的原因,当我使用 kubeadm 创建新集群时,我的第一个master 是 serverA。虽然ServerA的apiserver已经在docker中运行,并且我可以成功telnet ServerA-IP:6443,但是kubelet将在参数-“controlPlaneEndpoint”中检查4层负载均衡-IP:prot。因此,当我配置 \xe2\x80\x9ccontrolPlaneEndpoint\xe2\x80\x9d 时,在使用 kubeadm 安装过程中,100% 出现“nodexxx not found”。
\n\n在阿里等公有云环境中,我无法使用keepalived+haproxy。\n这意味着我必须为k8s-apiserver使用7层负载均衡,如果我想使用参数-“controlPlaneEndpoint”。正确的?
\n\n如何配置 kubeadm-config 进行第 7 层负载均衡?是https,我在kubeadm认证时遇到了问题。有任何文档吗?
\nPUT /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale
甚至尝试使用获取指定有状态集的规模数据
“GET /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale”
请求:curl -s -k -H“授权:承载$TOKEN”-X GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/$Namespace/$Kind/$PodNamePrefix/scale
给出错误:
"message": "statefulsets.apps "app-4x" 被禁止:用户 "system:serviceaccount::default" 无法在命名空间 ""","reason" 的 API 组 "apps" 中获取资源 "statefulsets/scale": “禁止”,
参考:https://v1-14.docs.kubernetes.io/docs/reference/ generated/kubernetes-api/v1.14/
有人可以帮我解决这个问题吗?
containers kubernetes microservices kubernetes-statefulset kubernetes-apiserver