gcloud와 미니큐브 간에 kubectl 클러스터를 전환하는 방법

저는 두 가지 다른 환경, 즉 로컬 환경(미니큐브를 실행하는 맥북)과 구글의 컨테이너 엔진(GCE, 구글 클라우드의 쿠버네티스)에서 쿠버네티스가 잘 작동하고 있습니다. 저는 MacBook/로컬 환경에서 YAML 파일을 개발 및 테스트한 다음 완료되면 GCE에서 테스트합니다.

현재 저는 각 환경에서 개별적으로 작업해야 합니다: 로컬 환경에서 YAML 파일을 편집하고 준비가 되면 GCE 환경으로 (git) 복제한 다음 사용/배포해야 합니다. 이는 다소 번거로운 과정입니다.

이상적으로는 Macbook에서 kubectl을 사용하여 로컬 미니큐브 또는 GCE Kubernetes 환경 간에 쉽게 전환하고 YAML 파일이 사용되는 위치를 쉽게 확인하고 싶습니다. 이를 위해 컨텍스트를 전환하는 간단한 방법이 있나요?

해결책

로컬(미니큐브)에서 gcloud로 전환했다가 다시 전환할 수 있습니다:

kubectl config 사용-컨텍스트 컨텍스트_이름`을 사용하면 된다.

을 사용하여 모든 컨텍스트를 나열할 수 있다:

kubectl config get-contexts

로컬과 gcloud에 대해 서로 다른 환경을 생성하여 별도의 yaml 파일에 넣을 수 있다.

해설 (1)

당신이'용한 GUI 기반의 솔루션을 위한 Mac Docker 데스크탑을 설치,사용할 수 있습니다커 메뉴 표시줄 아이콘이다. 여기에서 찾을 수 있습니다"Kubernetes"메뉴와 모든 상황에 있는 kubeconfig 고 쉽게 전환니다.

해설 (3)

빠르게 바로 가기를 표준 kubectl 명령을 사용하는 것kubectx:

목록황:kubectx -해당하는kubectl config get-컨텍스트 -전환 컨텍스트(foo):kubectx foo -해당하는kubectl config 용 상황 foo

에 설치하 macOS:양조치 kubectx

이 kubectx 함된 패키지는 유사한 도구로 전환하는 네임스페이스라는 kubens.

이러한 두 개의 슈퍼 편리 하에서 작업하는 경우 다중 컨텍스트와 네임스페이스를 정기적으로 한다.

더 많은 정보:https://ahmet.im/blog/kubectx/

해설 (0)

TL;박사:내가 만들어 GUI 전환 Kubernetes 컨텍스트를 통해 AppleScript. 나는 그것을 활성화를 통해 이동-cmd-x.

내가 너무했고 동일한 문제입니다. 그것은 고통이었 전환 컨텍스트의 명령에 의해 라인입니다. 내가 사용하는 FastScripts 를 설정하는 중요한 결합(shift-cmd-x)실행하는 다음과 같은 애플(에 위치한 이 디렉토리:$(가정)/라이브러리/스크립트/프로그램/터미널).

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 파일을 복제하는 것이 가장 이상적입니다. 환경마다 다른 매개 변수를 추출하여 YAML 파일을 템플릿화하면 됩니다.

물론 일부 템플릿 엔진을 사용하여 YAML의 값을 분리하고 특정 환경에 맞는 YAML을 생성할 수도 있습니다. 그러나 [헬름 차트][1]를 채택하면 쉽게 할 수 있다. 몇 가지 샘플 차트를 보려면 이 [Github 저장소][2]의 안정 디렉토리로 이동하세요.

워드프레스 차트][3]를 예로 들면, 두 가지 환경에 대해 서로 다른 두 개의 명령어를 사용할 수 있습니다:

개발자용:

'``helm install --name dev-release --set . 워드프레스사용자명=dev_admin, . 워드프레스패스워드=dev_password, \ mariadb.mariadbRootPassword=dev_secretpassword . stable/wordpress



이 값을 CLI에서 전달할 필요는 없지만 ```values.yml``이라는 파일에 값을 저장할 수 있으며 환경마다 다른 파일을 가질 수 있습니다.

헬름 차트 표준으로 변환하는 데 약간의 작업이 필요하지만 그만한 가치가 있다.

  [1]: https://helm.sh/
  [2]: https://github.com/kubernetes/charts
  [3]: https://github.com/kubernetes/charts/tree/master/stable/wordpress
해설 (0)

체크 또한 최신(도커 19.03)도커 컨텍스트명령.

인 ajeet 싱 레이나)보여 줍니다 그것이"커 19.03.0Pre-자료:빠른 컨텍스트 스위칭,뿌리는 도커,Sysctl 지원 떼 서비스"

컨텍스트가 기본적으로 구성된 당신은에 액세스하는 데 사용하는 특정 클러스터입니다.

예를 들어,예를 들어,내 특정한 경우에,나는 4 개의 다른 클러스터의 혼합을 떼고 Kubernetes 실행하는 로컬 및 원격으로. 가정 내가 기본적으로 클러스터에서 실행 되는 나의 데스크톱 컴퓨터,2 노드를 떼에서 실행되는 클러스터에서 Google 클라우드 플랫폼,5 개의 노드 클러스터에서 실행 되는 플레이커 놀이터를 보유하고 있으며,단일 노드 Kubernetes 클러스터에서 실행 Minikube 와는 나는 필요에 액세스하는 꽤 정기적으로 한다.

를 사용하여 도커 컨텍스트 CLI 나는 쉽게 전환할 수 있습 중 하나에서 클러스터(될 수 있는 내 개발 클러스터)을 테스트하는 클러스터의 생산에서는 초입니다.

$ 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.

예를 들어:

[:)Captain'sBay=>sudo 커 컨텍스트 ls 이름 설명커 ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR 기본*현재 DOCKER_HOST 기반으로 구성 unix:///var/실행/docker.양말 https://127.0.0.1:16443 (기본값)떼 떼-context1

해설 (0)

경우에 당신은 당신을 찾고 있을 수도 있습니다 간단한 방법으로 전환하는 다른 상황 어쩌면 이것에 도움이 될 것입니다.

내가에서 영감을 kubectxkswitch스크립트가 이미 언급했듯이,나는 추천할 수 있는 대부분의 사용 사례입니다. 그들은 그들을 돕는 일본의 유명한 전환 작업이지만 나를 위해서 일부 또는 더 큰 적은 표준을 구성의~/.kube/config. 그래서 내가 만들어 sys-exec wrapper 를 호출하고 짧은 주위에 손kubectl.

를 호출하는 경우[k](https://gitlab.com/kubic-ci/k 없이)params 당신에게 가로채는 프롬프트를 스위치 context.

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]:

또한,k의 역할을 지속적으로 짧습니다. 다음에 해당:

kubectl get pods --all-namespaces
k get pods -A
k p -A
해설 (0)

내가 지루해 입력하는 이 이상 그렇게 썼는 간단하 bash 유틸리티 컨텍스트 스위치

당신은 여기에서 찾을 수 있습니다 https://github.com/josefkorbel/kube-switch

해설 (0)

정규의 대답환/독해/조작하는 다른 kubernetes 환경(aka kubernetes 컨텍스트)는,표시로 언급,사용 kubectl config,아래를 참조하십시오:

$ 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]

현장에 뒤에있는~/.kube/configYAML 저장하는 파일 사용 가능한 모든 컨텍스트가 그에 상응하는 자격과 끝점에 대한 각각의 상황.

Kubectl 선반하지 않't 를 손쉽게 관리할 수 있습니다 다른 kubernetes 상황으로 당신은 아마 이미 알고 있습니다. 보다는 회전하는 스크립트를 관리하는 모든 것을 더 나은 방법을 사용하는 것이 성숙한 도구라는 kubectx에 의해 만들어진,google 직원이라는 이름"중앙에 Alp Balkan"는's 에 Kubernetes/Google 클라우드 플랫폼은 개발자 환경 팀에 건축하는 금형은 이렇습니다. 나는 그것을 권장합니다.

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 config view를 사용한다. 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)