通过kubectl连接Kubernetes集群

kubectl是用于针对Kubernetes集群运行命令的命令行接口。你可以通过kubectl部署集群应用,检查和管理集群资源,查看日志等。

一、安装kubectl

  • Linux系统
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.13/bin/linux/amd64/kubectl
  • Mac系统
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.13/bin/darwin/amd64/kubectl
  • Windows系统
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.13/bin/windows/amd64/kubectl.exe

注意:

kubenretes版本大于1.10请使用1.10以上的kubectl工具,小于1.10版本请使用1.10以下的kubectl工具,上述命令中v1.8.13可根据需求替换成业务所需的kubectl版本。

添加可执行权限:

$ chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/kubectl

测试安装是否成功:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.5", GitCommit:"32ac1c9073b132b8ba18aa830f46b77dcceb0723", GitTreeState:"clean", BuildDate:"2018-06-21T11:46:00Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.5-tke.5", GitCommit:"ad6116adbd82fbf203e20adcca72be022425441c", GitTreeState:"clean", BuildDate:"2019-06-17T10:59:40Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

二、配置kubectl

以腾讯云容器服务为例。下图是在腾讯云上创建的k8s集群:

腾讯云容器服务(Tencent Kubernetes Engine,TKE)是高度可扩展的高性能容器管理服务,您可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,您将无需安装、运维、扩展您的集群管理基础设施,只需进行简单的 API 调用,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。您可以根据资源需求和可用性要求在集群中安排容器的置放,满足业务或应用程序的特定要求。

image.png

点击“显示凭证”,弹出集群凭证信息:

image.png

按提示配置hosts信息:

sudo sed -i '$a 10.0.1.8 cls-xxxxxx.ccs.tencent-cloud.com' /etc/hosts

再配置:

kubectl config set-credentials default-admin --username=admin --password=
kubectl config set-cluster default-cluster --server=https://cls-xxxxxx.ccs.tencent-cloud.com --certificate-authority=/etc/kubernetes/cluster-ca.crt
kubectl config set-context default-system --cluster=default-cluster --user=default-admin
kubectl config use-context default-system

其中/etc/kubernetes/cluster-ca.crt为证书路径,注意证书的权限要设置为只读权限。

运行结果如下:

[root@VM_13_85_centos ~]# kubectl config set-credentials default-admin --username=admin --password=xxxxx85a7RpEdZZxihcK1hO3eixxxxx
User "default-admin" set.
[root@VM_13_85_centos ~]# kubectl config set-cluster default-cluster --server=https://cls-xxxxxx.ccs.tencent-cloud.com --certificate-authority=/etc/kubernetes/cluster-ca.crt
Cluster "default-cluster" set.
[root@VM_13_85_centos ~]# kubectl config set-context default-system --cluster=default-cluster --user=default-admin
Context "default-system" created.
[root@VM_13_85_centos ~]# kubectl config use-context default-system
Switched to context "default-system".

三、kubectl常用命令

输入kubectl help,获取kubectl的帮助文档。

[root@VM_231_116_centos ~]# kubectl help
kubectl controls the Kubernetes cluster manager.

Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/

...

1. 创建资源对象

根据yaml配置文件一次性创建service和rc:

$ kubectl create -f my-service.yaml -f my-rc.yaml

根据目录下所有.yaml、.yml、.json文件的定义进行创建操作:

$ kubectl create -f 

2. 查看资源对象

查看所有Pod列表:

$ kubectl get pods

#或者pod,po都可以
$ kubectl get po  

查看rc和service列表:

[root@VM_231_116_centos ~]# kubectl get rc
No resources found.

[root@VM_231_116_centos ~]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
api-xxxLoadBalancer 192.168.255.115 10.0.3.25 8000:31256/TCP 97d
api-xx-due LoadBalancer 192.168.255.217 10.0.3.44 8000:31484/TCP 88d
api-xx-web LoadBalancer 192.168.255.11 10.0.3.3 80:30731/TCP 139d

3. 描述资源对象

显示Node的详细信息:

# 查看所有node
$ kubectl describe nodes

# 查看指定node
$ kubectl describe nodes 

显示Pod的详细信息

$ kubectl describe pods/

4. 删除资源对象

基于pod.yaml定义的名称删除Pod:

$ kubectl delete -f pod.yaml

删除所有包含某个label的Pod和service

$ kubectl delete pods, service -l name=

删除所有Pod:

$ kubectl delete pods --all

5. 执行容器的命令

执行Pod的date命令,默认使用Pod中的第一个容器执行:

$ kubectl exec  date

指定Pod某个容器执行date命令:

$ kubectl exec  -c  date

进入容器:

$ kubectl exec -it  -c  bash

docker exec -it bash类似。

6. 查看容器的日志

查看容器输出到stdout的日志:

$ kubectl logs 

查看容器的实时日志,相当于tail -f命令:

$ kubectl logs -f  -c 

参考

  1. https://kubernetes.io/docs/tasks/tools/install-kubectl/
  2. https://kubernetes.io/docs/reference/kubectl/overview/
  3. 《Kubernetes权威指南》

你可能感兴趣的:(通过kubectl连接Kubernetes集群)