Как переключить kubectl кластеров между gcloud и minikube

У меня Kubernetes хорошо работает в двух различных средах, а именно в местной среде (MacBook работает minikube), а также на Google'контейнер с двигателем (ГЦЭ, Kubernetes в облачном сервисе Google). Я использую Макбук/локальную среду для разработки и тестирования мои файлы YAML и потом, по завершению, попробовать их на ГККП.

В настоящее время мне нужно работать с каждой среды в отдельности: мне нужно редактировать файлы YAML в моей локальной среде и, когда готово, (ЖКТ) клонировать их в среде ГККП, а затем использовать/внедрять их. Это довольно трудоемкий процесс.

В идеале, я хотел бы использовать kubectl от моего MacBook легко переключаться между локальным minikube или сред Kubernetes ГККП и легко определить, где используется YAML файлы находятся. Есть простой способ для переключения контекстов для этого?

Решение

Вы можете переключиться из местных (minikube) в gcloud и обратно с:

kubectl конфиг использовать контекстный принадлежащему context_name

список всех контекстах:

kubectl конфиг сделать-контекстах

Вы можете создавать различные среды для местных и gcloud и положил его в отдельные файлы YAML.

Комментарии (1)

Если вы'вновь глядя на графические решения для Mac и установили окна настройки рабочего стола, вы можете использовать значок Меню Настройки. Здесь вы можете найти и"Kubernetes и" меню с всех контекстах у вас в kubeconfig и легко переключаться между ними.

Комментарии (3)

Быстрее быстрого доступа к стандартным командам kubectl использовать kubectx:

  • Список контекстов: kubectx
  • Эквивалент kubectl конфиг сделать-контекстах
  • Переключить контекст (на ФОО): kubectx фу
  • Эквивалент kubectl конфиг использовать контекстный фу

Установить на macOS: самогон установите kubectx

Пакет kubectx также включает в себя инструмент для переключения пространства имен kubens.

Эти два супер удобно, если вы работаете в нескольких контекстах и пространствах имен регулярно.

Подробнее: https://ahmet.im/blog/kubectx/

Комментарии (0)

ТЛ;ДР: я создал GUI для переключения контекстов Kubernetes через помощью AppleScript. Я активировать его через шифт-КМД-х.

У меня тоже была такая же проблема. Это была боль переключение контекста командной строке. Я FastScripts установить ключ комбинированный (шифт-КМД-х) выполнить следующие помощью AppleScript (размещен в этом каталоге: $(дома)/библиотеки/Скрипты/программы/терминал).

use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions

do shell script "/usr/local/bin/kubectl config current-context"
set curcontext to result

do shell script "/usr/local/bin/kubectl config get-contexts -o name"
set contexts to paragraphs of result

choose from list contexts with prompt "Select Context:" with title "K8s Context Selector" default items {curcontext}
set scriptArguments to item 1 of result

do shell script "/usr/local/bin/kubectl config use-context " & scriptArguments

display dialog "Switched to " & scriptArguments buttons {"ok"} default button 1
Комментарии (0)

Копирую файлы YAML через РЕПО для различных сред определенно идеально. Что вам нужно сделать, это templatize ваши файлы YAML - путем извлечения параметров, которые отличаются от среды к среде.

Вы можете, конечно, использовать некоторые шаблонизатора и отдельных значений в YAML и производят и YAML для конкретных условий. Но это легко выполнимо, если вы принять Хелм графика. Чтобы взглянуть на некоторые примеры диаграмм перейдите на стабильный каталог в этом GitHub РЕПО

Брать пример из график Вордпресс, можно иметь две различных команды для двух сред:

Для Дев:

штурвал установить-имя разработчика-релиз-набор \ wordpressUsername=dev_admin, \ wordpressPassword=dev_password, \ версию MariaDB.mariadbRootPassword=\dev_secretpassword стабильный/вордпресс

Не надо передавать эти значения, хотя в CLI, вы можете сохранять значения в файл значений метко`.в формате YML и вы можете получать различные файлы для разных сред

Вам понадобятся некоторые работы в процессе перехода к стандартам руля графике, но усилия будут того стоить.

Комментарии (0)

Проверьте также последний (докер 19.03) команда докер контексте.

Аджит Сингх Райна ) показывает, что в " на&quotДокер 19.03.0 пре-релиз: быстрое переключение контекста, Безродные настройки команды sysctl поддержка для служб Рой;

В контексте это по сути настройки, которые вы используете для доступа к определенному кластеру.

говорят, например, в моем конкретном случае, у меня есть 4 разных кластеров – смесь Роя и Kubernetes работает локально и удаленно. Предположим, что у меня по умолчанию кластер работает на моем компьютере , 2 рой узел кластера работает на Google облачная платформа, 5-узел кластера, работающих на играть с докер, площадка и на одном узле кластера под управлением Kubernetes на Minikube и что мне нужно получить доступ к довольно регулярно.

используя докер контексте командной строки я могу легко переключаться из одного кластера(который мог бы быть моим кластерного развития) для проверки на соответствие производственного кластера в секундах.

$ sudo docker context --help
Usage:  docker context COMMAND
Manage contexts
Commands:
  create      Create a context
  export      Export a context to a tar or kubeconfig file
  import      Import a context from a tar file
  inspect     Display detailed information on one or more contexts
  ls          List contexts
  rm          Remove one or more contexts
  update      Update a context
  use         Set the current docker context
Run 'docker context COMMAND --help' for more information on a command.

Например:

[: капитан)'sBay=>судо докер контексте ЛС НАЗВАНИЕ ОПИСАНИЕ НАСТРОЙКИ КОНЕЧНОЙ ТОЧКИ KUBERNETES КОНЕЧНОЙ ТОЧКИ ОРКЕСТРАТОР по умолчанию * текущая DOCKER_HOST на основе конфигурации Unix:///ВАР/работа/докер.носок https://127.0.0.1:16443 (по умолчанию) Рой Рой-context1

Комментарии (0)

В случае, если вы ищете простой способ переключения между различными контекстами, возможно, это будет помощь.

Я воодушевился kubectx и kswitch скрипты уже упоминалось, который я могу рекомендовать для большинства случаев использования. Они помогают с решением задач коммутации, но голосуют за меня на некоторых больше или меньше стандартных конфигураций ~/.Кубе/конфигурации. Так я создала систему старпома фантик вызов и короткие руки вокруг kubectl.

Если вы называете к без параметров, вы увидите перехваченный запрос на переключение контекста.

Switch kubectl to a different context/cluster/namespace.
Found following options to select from:
 >>> context: [1] franz
 >>> context: [2] gke_foo_us-central1-a_live-v1
 >>> context: [3] minikube
 --> new num [?/q]:

Далее, " к " продолжает выступать в качестве коротких рук. Следующий эквивалент:

kubectl get pods --all-namespaces
k get pods -A
k p -A
Комментарии (0)

Мне надоело печатать это снова и снова, поэтому я написал простой Баш утилита для переключения контекстов

Вы можете найти его здесь https://github.com/josefkorbel/kube-switch

Комментарии (0)

Канонический ответ коммутации/значение/манипулирование различных средах kubernetes (kubernetes ака контекстов) является, как уже упоминалось Марком, чтобы использовать kubectl конфигурации, см. ниже:

$ kubectl config                                                                                                                                                                                                                 
Modify kubeconfig files using subcommands like "kubectl config set current-context my-context"

Available Commands:
  current-context Displays the current-context
  delete-cluster  Delete the specified cluster from the kubeconfig
  delete-context  Delete the specified context from the kubeconfig
  get-clusters    Display clusters defined in the kubeconfig
  get-contexts    Describe one or many contexts
  rename-context  Renames a context from the kubeconfig file.
  set             Sets an individual value in a kubeconfig file
  set-cluster     Sets a cluster entry in kubeconfig
  set-context     Sets a context entry in kubeconfig
  set-credentials Sets a user entry in kubeconfig
  unset           Unsets an individual value in a kubeconfig file
  use-context     Sets the current-context in a kubeconfig file
  view            Display merged kubeconfig settings or a specified kubeconfig file

Usage:
  kubectl config SUBCOMMAND [options]

За сценой, есть ~/.файл Кубе/конфиг и YAML, который хранит все доступные контексты и соответствующие им учетные данные и конечные точки для каждого контекста.

Kubectl с полки не'т сделать это легко управлять различных контекстах kubernetes, как вы, наверное, уже знаете. Вместо прокатки свой собственный скрипт для управления все, что для этого лучше использовать зрелый инструмент под названием kubectx, создана Google-ром по кличке "Ахмет Альп Балкан", который's на Kubernetes и Google облачная платформа для разработчиков опыт команды, которая строит Tooling как этот. Я очень рекомендую его.

https://github.com/ahmetb/kubectx

$ kctx --help                                                                                                                                                                                                                  
USAGE:
  kubectx                       : list the contexts
  kubectx                 : switch to context 
  kubectx -                     : switch to the previous context
  kubectx =     : rename context  to 
  kubectx =.          : rename current-context to 
  kubectx -d  [] : delete context  ('.' for current-context)
                                  (this command won't delete the user/cluster entry
                                  that is used by the context)

  kubectx -h,--help         : show this message
Комментарии (0)

да, я думаю, это то, что вы просите об этом. Для просмотра текущей конфигурации, использованию kubectl конфиг посмотреть. kubectl нагрузок и сливает конфиг из следующих источников (в порядке)

--kubeconfig=/path/to/.kube/config command line flag
KUBECONFIG=/path/to/.kube/config env variable
$HOME/.kube/config  - The DEFAULT

я использую --kubeconfig, так как я много переключаться между несколькими кластерами. его немного громоздким, но это работает хорошо.

ознакомиться с этим подробнее. https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/ и https://kubernetes.io/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/

Комментарии (1)