Настроить команду kubectl для доступа к удаленному кластеру kubernetes на azure

У меня есть кластер kubernetes, работающий на лазуре. Каким образом можно получить доступ к кластеру из локальной команды kubectl. Я упоминал здесь, но на главном кубернете node нет конфигурационного файла kube. Кроме того, kubectl config отображает результаты в

apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []

Ответ 1

Найден способ доступа к удаленному кластеру kubernetes без ssh'ing к одному из узлов в кластере. Вам нужно отредактировать файл ~/.kube/config, как показано ниже:

apiVersion: v1 
clusters:    
- cluster:
    server: http://<master-ip>:<port>
  name: test 
contexts:
- context:
    cluster: test
    user: test
  name: test

Затем установите контекст, выполнив:

kubectl config use-context test

После этого вы сможете взаимодействовать с кластером.

Примечание. Чтобы добавить сертификацию и ключ, используйте следующую ссылку: http://kubernetes.io/docs/user-guide/kubeconfig-file/

В качестве альтернативы вы также можете попробовать выполнить следующую команду

kubectl config set-cluster test-cluster --server=http://<master-ip>:<port> --api-version=v1
kubectl config use-context test-cluster

Ответ 2

Вы также можете определить путь к файлу kubeconfig, передав параметр --kubeconfig.

Например, скопируйте ~/.kube/config удаленного хоста Kubernetes в ваш локальный проект ~/myproject/.kube/config. Затем в ~/myproject вы можете просмотреть список модулей удаленного сервера Kubernetes, запустив kubectl get pods --kubeconfig./.kube/config.

Обратите внимание, что при копировании значений с удаленного сервера Kubernetes простого kubectl config view будет недостаточно, поскольку оно не отображает секреты файла конфигурации. Вместо этого вы должны сделать что-то вроде cat ~/.kube/config или использовать scp чтобы получить полное содержимое файла.

Смотрите: https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/

Ответ 3

Как вы создали свой кластер? Чтобы получить доступ к кластеру удаленно, вам нужен файл kubeconfig (похоже, у вас его нет), а сценарии установки генерируют локальный файл kubeconfig как часть процесса развертывания кластера (поскольку в противном случае кластер, который вы только что развернули, не используется), Если кто-то другой развернул кластер, вы должны следовать инструкциям на странице, с которой вы связались, чтобы получить копию необходимых учетных данных клиента для подключения к кластеру.

Ответ 4

Настройка Azure предоставляет только внешние порты ssh. Это можно найти в. /output/kube _xxxxxxxxxx_ssh_conf То, что я сделал, - это туннель ssh, который будет доступен на моей машине, добавив туннель ssh port. Перейдите в указанный выше файл и в разделе "host *" добавьте еще одну строку, как показано ниже:

LocalForward 8080 127.0.0.1:8080

который отображает мой локальный машинный порт 8080 (где kubectl ищет контекст по умолчанию) на порт 8080 удаленной машины, где мастер прослушивает вызовы api. когда вы открываете ssh на kube-00, поскольку регулярные показы документов теперь могут выполнять вызовы из вашего локального kubectl без какой-либо дополнительной конфигурации.

Ответ 6

Найдите каталог .kube на вашем компьютере k8s.
В Linux/Unix это будет в /root/.kube
На окнах это будет в C: /User//. Kube
скопируйте файл конфигурации из папки .kube кластера k8s в папку .kube вашего локального компьютера
Скопируйте клиентский сертификат: /etc/cfc/conf/kubecfg.crt
ключ клиента: /etc/cfc/conf/kubecfg.key
в папку .kube вашей локальной машины.
Отредактируйте файл конфигурации в папке .kube вашего локального компьютера и обновите путь к файлам kubecfg.crt и kubecfg.key на вашем локальном компьютере.
/etc/cfc/conf/kubecfg.crt → C:\Users\.kube\kubecfg.crt
/etc/cfc/conf/kubecfg.key → C:\Users\.kube\kubecfg.key
Теперь вы должны иметь возможность взаимодействовать с кластером. Запустите kubectl get pods, и вы увидите pods в кластере k8s.

Ответ 7

Для кластеров, которые создаются вручную с помощью облачных провайдеров vm, просто получите kubeconfig из ~/.kube/config. Однако для управляемых сервисов, таких как GKE, вам придется полагаться на gcloud, чтобы получить kubeconfig, сгенерированный во время выполнения с правильным токеном.

Как правило, можно создать служебную учетную запись, которая поможет получить правильный kubeconfig с сгенерированным для вас токеном. Нечто подобное можно также найти в Azure.