如何控制 kubectl 与哪个集群通信



我正在使用kubectl来控制本地microk8s安装。我配置了一个本地 Google 云外壳连接,以避免通过 GKE 仪表板对可用的机器进行荒谬的配置。

现在,kubectl命令似乎是在microk8s和GKE上随机执行的。我不仅想解决这个问题,而且要禁止将来出现这种情况。

kubectl可以引用不同环境的可能性是一个可怕的想法,显然是基于kubectl CLI 的概念,它无法指定远程集群。它可能导致生产系统上的意外更改。即使是铁杆 12 因素布道者也会安装本地集群进行开发。

kubectl config use-context命令可用于修改Kubectl与谁交谈。

使用配置文件配置对多个群集的访问。在一个或多个配置文件中定义群集、用户和上下文后,可以使用 在群集之间快速切换。 配置访问多个集群/

您可以在kubectl命令中提供/添加--context--namespace选项,以针对任何集群运行kubectl。如果您同时来回处理多个集群,则非常方便。

kubectl --cluster=my_cluster --namespace=my_namespace get pods

注意:请更改环境的集群和命名空间名称。

以下是更多 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

最新更新