从在不同k8s集群中运行的Pod启动不同k8s集群中的Pod

时间:2018-10-25 19:13:17

标签: kubernetes pod

是否有可能从K8集群C中运行的Pod启动K8s集群中名为B的Pod。

2 个答案:

答案 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之类的库。