Kubernetes kubectl经常使用命令

Kubernetes kubectl经常使用命令

[TOC]html

1. 查看资源对象

经常使用查看资源对象(|rc|)有namespace(ns) pods service(svc) endpoints(ep) deployment(deploy) pvc ingresses(ing),括号内为最简写法。
kubectl get |rc|
显示更多信息,在后面接-o wide-ojson或者-o yaml,同时查看多个资源对象用英文逗号隔开。
查看资源对象全名,可经过kubectl rc,|rc| linux

2. 建立资源对象

建立时,注意文件内是否有namespace,若是没有,请在命令后面指定-n |namespace-name|
根据yaml配置文件一次性建立资源对象
kubectl create -f service.yaml -f deployment.yaml
根据|directory|目录下全部.yaml.yml.json文件的定义进行建立操做
kubectl create -f |directory| json

对资源进行配置,最经常使用功能。
kubectl apply -f service.yaml
kubectl apply -f |directory| windows

3. 编辑资源对象

编辑资源对象时,编辑器为vi,须要熟悉vi命令操做。
kubectl edit deploy |deployment-name| bash

若是日常是使用yaml文件维护,注意下次修改时的配置。 app

4. 描述资源对象

显示service的详细信息
kubectl describe svc |service-name|
显示pod的详细信息,其中显示的pod启动过程事件能够帮助排错。
kubectl describe pods/|pod-name| tcp

5. 删除资源对象

相似create命令用法
基于deployment.yaml定义的名称删除deployment
kubectl delete -f deployment.yaml
根据|directory|目录下全部.yaml.yml.json文件的定义进行建立删除
kubectl delete -f |directory|
删除全部包含某个labelpodservice
kubectl delete pods,svc -l name=|label-name| 编辑器

6. 执行容器的命令

执行podls命令,默认是用pod中的第一个容器执行
kubectl exec -it |pod-name| -- ls
指定pod中某个容器执行ls命令
kubectl exec |pod-name| -c |container-name| ls
登陆容器(容器中命令存在时)
kubectl exec -it |pod-name| /bin/sh
kubectl exec -it |pod-name| /bin/bashide

7. 查看容器日志

查看容器的所有日志。pod中有多个容器时须要指定容器名
kubectl logs |pod-name| [|container-name|]
相似tail -f实时输出日志
kubectl logs -f |pod-name|
查看最近多少时间以来日志,并实时输出,适用于日志较多,运行较久的pod
kubectl logs -f |pod-name| --since 10m ui

通常配合kubectl describe pods/|pod-name|进行排错。

8. pod的扩容与缩容

执行扩容缩容pod的操做,支持的资源对象有deployment statefulset daemonset
kubectl scale deploy |deployment-name| --replicas=2

扩容与缩容是相对于当前的replicas数。若是日常是使用yaml文件维护,注意下次修改时的配置。

9. pod的滚动升级

执行滚动升级操做
kubectl rolling-update |deployment-name| -f deployment.yaml
能够使用kubeclt rolling-update |deployment-name| --image=example:v2.0直接指定镜像名称的方式直接升级。
还能够使用kubectl edit命令达到滚动升级目的。若是日常是使用yaml文件维护,注意下次修改时的配置。

10. 端口转发

在集群节点外面链接集群,避免大量端口管理,能够做为开发调试经常使用功能。当前v1.12版本还未支持tcp keepalived链接,所以链接不活动容易中断。
kubectl port-forward svc/|service-name| 本机端口:服务端口 …

11. 拷贝文件或目录

注意windows和linux目录斜杆差异
kubectl cp /local_path/filename |namespace|/|pod-name|:/container_path/
kubectl cp |namespace|/|pod-name|:/container_path/ /local_path/filename

其它技巧:
https://jimmysong.io/kubernetes-handbook/guide/kubectl-cheatsheet.html

相关文章
相关标签/搜索