Kubctl получает доступ к кластеру Kubernetes, созданному с помощью частного IP - PullRequest
0 голосов
/ 09 мая 2018

Я создал кластер Kubernetes, используя kubadm и частный IP-адрес сервера, чтобы все узлы могли достичь его через сеть cloudprovider. Я использую 4 узла в DigitalOcean.

kubctl-s-2vcpu-4gb-nyc3-01-master:~# kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACTED
    server: https://10.132.113.68:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

Команда, которую я использовал для инициализации кластера:

kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=10.132.113.68 --kubernetes-version stable-1.8

Я пытаюсь подключиться к этому кластеру, используя kubectl с моего локального компьютера. Файл admin.conf имеет частный IP-адрес:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS********S0tLQo=
    server: https://10.132.113.68:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes

Я попытался настроить прокси в мастере kubectl proxy и создать SSH-туннель к серверу:

ssh -L 8001:127.0.0.1:8001 -N -i test.pem root@104.236.XX.209

Я могу войти в панель управления Kubernetes со своего компьютера, но не могу выполнить kubectl команды:

$kubectl -s localhost:8001 get nodes
Unable to connect to the server: read tcp 127.0.0.1:62394->127.0.0.1:8001: read: connection reset by peer

1 Ответ

0 голосов
/ 10 мая 2018

Где ssh -L ... заканчивается, sshuttle начинается :): он создает локальный tcp "перехватывать" DNAT через узел ssh dest, то есть будет пересылать каждое tcp соединение в указанном CIDR .

Попробуйте:

  • В одном терминале (для облегчения позже ^ C):

    sshuttle -e 'ssh -vi test.pem' -r root@104.236.XX.209 10.132.113.68/32

  • Из другого терминала просто выполните kubectl ..., как если бы вы работали локально с вашего исходного узла kubeadm.

  • Прибыль:)

- jjo

...