我正在使用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