是否有可能从K8集群C中运行的Pod启动K8s集群中名为B的Pod。
答案 0 :(得分:1)
是的,使用具有身份验证和授权的服务帐户在群集C中运行Pod,以在群集B中启动Pod,或者在群集C的Pod中嵌入其他可以在群集B上做同样的事情。群集B的API服务器需要可从群集C上的pod进行访问。
测试的简单方法是在安装了kubectl的C上运行pod,并在集群B上运行kubeconfig,然后运行kubectl命令。
您访问API服务器的位置(群集,容器,容器,机器)都无关紧要。您只需要带有适当credentails的kubectl /客户端库即可。
答案 1 :(得分:1)
是的。这是一种骇人听闻的方式,但有可能。
此外,准则通常与此答案相同:
How I create new namespace in Kubernetes
在集群B的Pod中,您可以调用:
$ kubectl apply -f <your pod-definition>
哪个将在集群C中创建一个Pod,~/.kube/config
指向集群C。
您还可以设置角色和整个RBAC,并从群集B向群集B发出curl
。
$ curl -k -H -X POST -H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
https://$KUBERNETES_SERVICE_HOST:6443/api/v1/namespaces/namespace/pods -d '
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "mypod"
"namespace": "mynamespace",
},
"spec": {
"containers": [
{
...
}
]
...
}
}'
或者也可以使用client-go或/和kubernetes-client/python之类的库。