Запуск модуля в другом кластере k8s из модуля, работающего в другом кластере k8s - PullRequest
0 голосов
/ 25 октября 2018

Можно ли запустить модуль в кластере K8s с именем B с модуля, работающего в кластере K8 C.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Да.Это хакерский способ, но это возможно.

Кроме того, правила, как правило, такие же, как и в этом ответе:

Как создать новое пространство имен в Kubernetes

В модуле в кластере B вы можете вызвать:

$ kubectl apply -f  <your pod-definition>

, который создает модуль в кластере C, и ~/.kube/config указывает на кластер C.

Вы также можете настроитьроль и весь RBAC и выдайте curl из кластера B в кластер B.

$ 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 / питон .

0 голосов
/ 25 октября 2018

Да, запустите модуль в кластере C с учетной записью службы, которая имеет права доступа и полномочия для запуска модулей в кластере B, или вставьте некоторые другие учетные данные в модуль в кластере C, которые могут делать то же самое в кластере B, более того,Сервер API кластера B должен быть доступен из модуля в кластере C.

Простой способ тестирования - запустить модуль на C с установленным kubectl, kubeconfig кластера B и просто запустить команду kubectl.

Неважно, откуда (кластер, модуль, контейнер, машина) вы обращаетесь к серверу API.Вам просто нужна библиотека kubectl / client с правильными учетными данными.

...