• 1. kubectl的安装
  • 2. 配置k8s集群环境
    • 2.1. 命令行方式
      • 2.1.1 非安全方式
      • 2.1.2 安全方式
      • 2.1.3 查询当前配置环境
    • 2.2. 添加配置文件的方式
  • 3. kubectl config
  • 4. shell自动补齐

    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

    参考文章:

    • https://kubernetes.io/docs/tasks/tools/install-kubectl/