如何控制 kubectl 与哪个集群通信?
How to control which cluster kubectl talks to?
我正在使用 kubectl 来控制本地 microk8s 安装。我配置了一个本地 Google 云 shell 连接,以避免通过 GKE 仪表板提供可笑的机器配置。
现在,kubectl
命令似乎在 microk8s 和 GKE 上随机执行。我不仅要解决这个问题,而且要在未来禁止这种情况。
kubectl
可以引用不同环境的可能性是一个可怕的想法,显然是建立在 kubectl
CLI 的概念之上的,它无法提供指定远程集群的方法。它可能导致生产系统发生意外更改。即使是铁杆 12-factor 布道者也会安装本地集群进行开发。
kubectl config use-context
命令可以用来修改,kubectl 和谁对话。
configure access to multiple clusters by using configuration files. After your clusters, users, and contexts are defined in one or more configuration files, you can quickly switch between clusters by using the.
configure-access-multiple-clusters/
您可以 supply/add --context
和 --namespace
选项到您的 kubectl
命令以 运行 kubectl
针对任何集群。如果您同时来回处理多个集群,则非常方便。
kubectl --cluster=my_cluster --namespace=my_namespace get pods
Note: Please change cluster & namespace names for your environment.
这里有更多 kubectl 选项:
~/git/kubernetes (master) $ kubectl options
The following options can be passed to any command:
--alsologtostderr=false: log to standard error as well as files
--as='': Username to impersonate for the operation
--as-group=[]: Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--cache-dir='/Users/robertrt/.kube/http-cache': Default HTTP cache directory
--certificate-authority='': Path to a cert file for the certificate authority
--client-certificate='': Path to a client certificate file for TLS
--client-key='': Path to a client key file for TLS
--cluster='': The name of the kubeconfig cluster to use
--context='': The name of the kubeconfig context to use
--insecure-skip-tls-verify=false: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig='': Path to the kubeconfig file to use for CLI requests.
--log-backtrace-at=:0: when logging hits line file:N, emit a stack trace
--log-dir='': If non-empty, write log files in this directory
--log-flush-frequency=5s: Maximum number of seconds between log flushes
--logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version
-n, --namespace='': If present, the namespace scope for this CLI request
--request-timeout='0': The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.
-s, --server='': The address and port of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr
--token='': Bearer token for authentication to the API server
--user='': The name of the kubeconfig user to use
-v, --v=0: log level for V logs
--vmodule=: comma-separated list of pattern=N settings for file-filtered logging
我正在使用 kubectl 来控制本地 microk8s 安装。我配置了一个本地 Google 云 shell 连接,以避免通过 GKE 仪表板提供可笑的机器配置。
现在,kubectl
命令似乎在 microk8s 和 GKE 上随机执行。我不仅要解决这个问题,而且要在未来禁止这种情况。
kubectl
可以引用不同环境的可能性是一个可怕的想法,显然是建立在 kubectl
CLI 的概念之上的,它无法提供指定远程集群的方法。它可能导致生产系统发生意外更改。即使是铁杆 12-factor 布道者也会安装本地集群进行开发。
kubectl config use-context
命令可以用来修改,kubectl 和谁对话。
configure access to multiple clusters by using configuration files. After your clusters, users, and contexts are defined in one or more configuration files, you can quickly switch between clusters by using the. configure-access-multiple-clusters/
您可以 supply/add --context
和 --namespace
选项到您的 kubectl
命令以 运行 kubectl
针对任何集群。如果您同时来回处理多个集群,则非常方便。
kubectl --cluster=my_cluster --namespace=my_namespace get pods
Note: Please change cluster & namespace names for your environment.
这里有更多 kubectl 选项:
~/git/kubernetes (master) $ kubectl options
The following options can be passed to any command:
--alsologtostderr=false: log to standard error as well as files
--as='': Username to impersonate for the operation
--as-group=[]: Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--cache-dir='/Users/robertrt/.kube/http-cache': Default HTTP cache directory
--certificate-authority='': Path to a cert file for the certificate authority
--client-certificate='': Path to a client certificate file for TLS
--client-key='': Path to a client key file for TLS
--cluster='': The name of the kubeconfig cluster to use
--context='': The name of the kubeconfig context to use
--insecure-skip-tls-verify=false: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig='': Path to the kubeconfig file to use for CLI requests.
--log-backtrace-at=:0: when logging hits line file:N, emit a stack trace
--log-dir='': If non-empty, write log files in this directory
--log-flush-frequency=5s: Maximum number of seconds between log flushes
--logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version
-n, --namespace='': If present, the namespace scope for this CLI request
--request-timeout='0': The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.
-s, --server='': The address and port of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr
--token='': Bearer token for authentication to the API server
--user='': The name of the kubeconfig user to use
-v, --v=0: log level for V logs
--vmodule=: comma-separated list of pattern=N settings for file-filtered logging