- 1. kubectl的安装
- 2. 配置k8s集群环境
- 2.1. 命令行方式
- 2.1.1 非安全方式
- 2.1.2 安全方式
- 2.1.3 查询当前配置环境
- 2.2. 添加配置文件的方式
- 2.1. 命令行方式
- 3. kubectl config
- 4. shell自动补齐
1. 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,例如:v1.9.0
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 非安全方式
kubectl config set-cluster k8s --server=http://<url>kubectl config set-context <NAMESPACE> --cluster=k8s --namespace=<NAMESPACE>kubectl config use-context <NAMESPACE>
2.1.2 安全方式
kubectl config set-cluster k8s --server=https://<url> --insecure-skip-tls-verify=truekubectl config set-credentials k8s-user --username=<username> --password=<password>kubectl config set-context <NAMESPACE> --cluster=k8s --user=k8s-user --namespace=<NAMESPACE>kubectl config use-context <NAMESPACE>
2.1.3 查询当前配置环境
[root@test ]# kubectl cluster-infoKubernetes 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文件。
内容如下:
apiVersion: v1kind: Configclusters:- name: localcluster:certificate-authority: ./ssl/ca.pemserver: https://192.168.10.3:6443users:- name: kubeletuser:client-certificate: ./ssl/cert.pemclient-key: ./ssl/key.pemcontexts:- context:cluster: localuser: kubeletname: kubelet-cluster.localcurrent-context: kubelet-cluster.local
3. kubectl config
kubectl config命令说明
$ kubectl config --helpModify kubeconfig files using subcommands like "kubectl config set current-context my-context"The loading order follows these rules:1. If the --kubeconfig flag is set, then only that file is loaded. The flag may only be set once and no merging takesplace.2. If $KUBECONFIG environment variable is set, then it is used a list of paths (normal path delimitting rules for yoursystem). These paths are merged. When a value is modified, it is modified in the file that defines the stanza. When avalue is created, it is created in the first file that exists. If no files in the chain exist, then it creates the lastfile in the list.3. Otherwise, ${HOME}/.kube/config is used and no merging takes place.Available Commands:current-context Displays the current-contextdelete-cluster Delete the specified cluster from the kubeconfigdelete-context Delete the specified context from the kubeconfigget-clusters Display clusters defined in the kubeconfigget-contexts Describe one or many contextsrename-context Renames a context from the kubeconfig file.set Sets an individual value in a kubeconfig fileset-cluster Sets a cluster entry in kubeconfigset-context Sets a context entry in kubeconfigset-credentials Sets a user entry in kubeconfigunset Unsets an individual value in a kubeconfig fileuse-context Sets the current-context in a kubeconfig fileview Display merged kubeconfig settings or a specified kubeconfig fileUsage:kubectl config SUBCOMMAND [options]Use "kubectl <command> --help" for more information about a given command.Use "kubectl options" for a list of global command-line options (applies to all commands).
4. shell自动补齐
source <(kubectl completion bash)echo "source <(kubectl completion bash)" >> ~/.bashrc
参考文章:
- https://kubernetes.io/docs/tasks/tools/install-kubectl/
