本文介绍的内容有:在Linux和macOS上安装Kubectl、用于多个集群的Kubectl配置、使用Kubectl在上下文之间切换、使用kubectx和kubens轻松进行上下文和命名空间切换。Kubectl是一个命令行实用程序,用于控制和管理Kubernetes集群以及运行集群的对象。Kubectl使你可以创建、修改和删除各种Kubernetes资源,例如Deployments、Pod、Services、切换上下文、甚至访问容器shell。我们将从安装kubectl开始,然后继续进行必要的配置,以在使用kubectl从CLI管理Kubernetes集群时提高效率。请注意,在使用本文之前,你应该拥有一个正常的Kubernetes集群,参考使用Ansible和Kubespray部署生产就绪Kubernetes集群的步骤。
在Linux和macOS上安装Kubectl 通过安装Kubernetes集群,你必须已安装kubectl作为基本要求,但这意味着你需要登录到主节点才能运行kubectl命令,可以在本地Linux或macOS计算机上安装kubectl。 1、在Linux上安装Kubectl: curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl 确认安装了kubectl: $ kubectl version
2、在macOS上安装Kubectl 对于macOS,运行以下命令: curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl" chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl kubectl version
配置Kubectl kubectl工具在$HOME/.kube目录中查找名为config的文件,但是可以使用--kubeconfig选项指定一个单独的文件,kubeconfig文件可帮助你组织有关集群、用户、名称空间和身份验证机制的信息: $ ls $HOME/.kube/config /home/jmutai/.kube/config 在此配置中,需要设置以下元素: clusters–要配置对群集的访问,你需要知道群集的位置并具有访问它的凭据,在群集部分中,将设置证书授权数据,访问URL和群集名称。 context:上下文元素用于以方便的名称将访问参数分组,配置文件中的每个上下文都应具有三个参数:集群、名称空间和用户。 users:指定用于访问及其凭据。 对于单个群集,你的配置文件将类似于以下内容:
获取群集URL、CA数据和用户凭据,然后替换为文件。
用于多个集群的Kubectl配置 以下是四个Kubernetes集群的模板配置文件: k8s-dev –上下文是k8s-dev,用户是k8s-dev-admin。 k8s-staging –上下文是k8s-staging,用户是k8s-staging-admin。 k8s-qa –上下文是k8s-qa,用户是k8s-qa-admin。 k8s-prod –上下文是k8s-prod,用户是k8s-prod-admin。 每个群集都有一个唯一的名称,关联的上下文和用户: apiVersion: v1 kind: Config preferences: {} clusters: - cluster: certificate-authority-data: server: name: k8s-dev - cluster: certificate-authority-data: server: name: k8s-staging - cluster: certificate-authority-data: server: name: k8s-qa - cluster: certificate-authority-data: server: name: k8s-prod contexts: - context: cluster: k8s-dev user: k8s-dev-admin name: k8s-dev - context: cluster: k8s-staging user: k8s-staging-admin name: k8s-staging - context: cluster: k8s-qa user: k8s-qa-admin name: k8s-qa - context: cluster: k8s-prod user: k8s-prod-admin name: k8s-prod users: - name: k8s-dev-admin user: password: username: - name: k8s-staging-admin user: client-certificate-data: client-key-data: - name: k8s-qa-admin user: client-certificate-data: client-key-data: - name: k8s-prod-admin user: client-certificate-data: client-key-data: 修改模板以适合您的用例,然后将内容粘贴到$HOME/.kube/config中。
使用Kubectl在上下文之间切换 查看当前上下文: $ kubectl config get-contexts $ kubectl配置获取上下文
要切换到其他上下文,请使用: $ kubectl config use-context k8s-prod Switched to context "k8s-prod". $ kubectl config use-context k8s-staging Switched to context "k8s-staging". 测试: $ kubectl get nodes
安装及使用kubectx和kubens轻松进行上下文和命名空间切换 kubectx帮助你在集群之间来回切换,而kubens帮助你在Kubernetes命名空间之间平稳地切换。 1、安装kubectx和kubens wget https://raw.githubusercontent.com/ahmetb/kubectx/master/kubectx wget https://raw.githubusercontent.com/ahmetb/kubectx/master/kubens chmod +x kubectx kubens sudo mv kubens kubectx /usr/local/bin 用法页面: $ kubectx --help $ kubens --help
例子: # Get all contexts $ kubectx k8s-dev k8s-staging k8s-qa k8s-prod # Switch to prod context $ kubectx k8s-prod # Get all namespaces in k8s-prod context $ kubens # Switch to a namespace $ kubens <namespacename> 请参阅以下gif演示操作过程。 kubectx演示GIF:
kubens演示GIF:
最后,我希望本文对你使用kubectl和其他工具(如kubectx和kubens)进行Kubernetes管理有所帮助。
相关主题 |