「Kubernetes」- 学习使用Kubernetes客户端

  FROM JENKINS AUTOMATION

更新日期:2019年07月10日
@IGNORECHANGE

在kubeadm初始化成功后,有一段输出:


# mkdir -p $HOME/.kube
# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# sudo chown $(id -u):$(id -g) $HOME/.kube/config

对,复制到由kubectl的机器上,用于访问集群。

3.1. Listing Resources

查看所有的PODS:kubectl get pods

查看所有的服务和部署:kubectl get services,deployments

查看特定的部署:kubectl get deployment dep-name

查看所有资源:kubectl get all

很多资源都有简写:configmap cm, daemonsets ds, deployments deploy, endpoints ep, events ev, horizontalpodautoscalers hpa, ingresses ing, namespaces ns, nodes no, persistentvolumeclaims pvc, persistentvolumes pv, pods po, replicasets rs, replactioncontrollers rc, resourcequotas quota, serviceaccounts sa, services svc

3.2. Deleting Resources

查看命名空间:kubectl get namespace

删除命名空间:kubectl delete namesapce

根据标签删除特定的资源:kubectl delete svc,deploy -l app=niceone

强行删除PODS:kubectl delete pods pod-name –grace-period=0 –force

删除指定命名空间内的PODS:kubectl delete pods –all –namespace test

!!!不要直接删除被监控的对象,例如由部署控制的POD等等。应该先关闭监控进程,或者用特定的操作删除被管理的资源。例如,可以将一个部署缩小到零个副本,然后就可以有效的删除它所监控的POD了!!!

!!!级联删除和直接删除!!!当删除一个自定义的资源定义时,其所有的依赖对象也会被删除。参考「Garbage Collection」手册。

3.3. Watching Resource Changes with kubectl

观察资源的变化:kubectl get pods –watch # 该命令类似于TOP命令,但是在刷新屏幕时,有时不太可靠

还可以使用:watch kubectl get pods

3.4. Editing Resources with kubectl

使用kubectl edit编辑资源:

# kubectl run nginx –image=nginx
# kubectl edit deployment/nginx

然后会在编辑器内打开。修改信息后,系统会提示:deployment “nginx” edited

!!!并不是所有的变更都互触发部署!!!

!!!可以设置EDITOR环境变量来指定编辑器,例如EDITOR=emacs来使用Emacs编辑器!!!

!!!部分触发器由快捷键!!!例如修改部署的镜像版本,可以使用kubectl set image,该命令可以更新已有容器的镜像资源(对部署,副本集,副本控制器,服务进程集,简单的POD都有效)

3.5. Asking kubectl to Explain Resources and Fields

获取字段的信息:

# kubectl explain service
# kubectl explain service.metadata
# kubectl explain service.metadata.namespace

命令kubectl explain从Swagger/OpenAPI定义中摘取由API服务器提供的资源和字段描述。




文章摘要:Cloud-native_Technologies:Kubernetes:Kubernetes_Cookbook:3.Learning_to_Use_the_Kubernetes_Client

原文链接:「Kubernetes」- 学习使用Kubernetes客户端