1. kubectl的安装

  1. 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,例如:v1.9.0

  1. curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

2. 配置k8s集群环境

2.1. 命令行方式

2.1.1 非安全方式

  1. kubectl config set-cluster k8s --server=http://<url>
  2. kubectl config set-context <NAMESPACE> --cluster=k8s --namespace=<NAMESPACE>
  3. kubectl config use-context <NAMESPACE>

2.1.2 安全方式

  1. kubectl config set-cluster k8s --server=https://<url> --insecure-skip-tls-verify=true
  2. kubectl config set-credentials k8s-user --username=<username> --password=<password>
  3. kubectl config set-context <NAMESPACE> --cluster=k8s --user=k8s-user --namespace=<NAMESPACE>
  4. kubectl config use-context <NAMESPACE>

2.1.3 查询当前配置环境

  1. [root@test ]# kubectl cluster-info
  2. Kubernetes master is running at http://192.168.10.3:8081

2.2. 添加配置文件的方式

当没有指定--kubeconfig参数和$KUBECONFIG的环境变量的时候,会默认读取${HOME}/.kube/config

因此创建${HOME}/.kube/config文件,并在`${HOME}/.kube/ssl目录下创建ca.pem、cert.pem、key.pem文件。

内容如下:

  1. apiVersion: v1
  2. kind: Config
  3. clusters:
  4. - name: local
  5. cluster:
  6. certificate-authority: ./ssl/ca.pem
  7. server: https://192.168.10.3:6443
  8. users:
  9. - name: kubelet
  10. user:
  11. client-certificate: ./ssl/cert.pem
  12. client-key: ./ssl/key.pem
  13. contexts:
  14. - context:
  15. cluster: local
  16. user: kubelet
  17. name: kubelet-cluster.local
  18. current-context: kubelet-cluster.local

3. kubectl config

kubectl config命令说明

  1. $ kubectl config --help
  2. Modify kubeconfig files using subcommands like "kubectl config set current-context my-context"
  3. The loading order follows these rules:
  4. 1. If the --kubeconfig flag is set, then only that file is loaded. The flag may only be set once and no merging takes
  5. place.
  6. 2. If $KUBECONFIG environment variable is set, then it is used a list of paths (normal path delimitting rules for your
  7. system). These paths are merged. When a value is modified, it is modified in the file that defines the stanza. When a
  8. value is created, it is created in the first file that exists. If no files in the chain exist, then it creates the last
  9. file in the list.
  10. 3. Otherwise, ${HOME}/.kube/config is used and no merging takes place.
  11. Available Commands:
  12. current-context Displays the current-context
  13. delete-cluster Delete the specified cluster from the kubeconfig
  14. delete-context Delete the specified context from the kubeconfig
  15. get-clusters Display clusters defined in the kubeconfig
  16. get-contexts Describe one or many contexts
  17. rename-context Renames a context from the kubeconfig file.
  18. set Sets an individual value in a kubeconfig file
  19. set-cluster Sets a cluster entry in kubeconfig
  20. set-context Sets a context entry in kubeconfig
  21. set-credentials Sets a user entry in kubeconfig
  22. unset Unsets an individual value in a kubeconfig file
  23. use-context Sets the current-context in a kubeconfig file
  24. view Display merged kubeconfig settings or a specified kubeconfig file
  25. Usage:
  26. kubectl config SUBCOMMAND [options]
  27. Use "kubectl <command> --help" for more information about a given command.
  28. Use "kubectl options" for a list of global command-line options (applies to all commands).

4. shell自动补齐

  1. source <(kubectl completion bash)
  2. echo "source <(kubectl completion bash)" >> ~/.bashrc

参考文章: