1. kubectl是什么?
kebctl是k8s集群的命令行工具,用来进行部署容器的
2. kubectl命令的语法
kubectl [command] [TYPE] [NAME] [flags]
create pods pod-pod1 可选
get service service-nginx2
describe deployment
delete
3. kubectl命令总结
kubectl --help
kubectl get --help
基础命令:
kubectl create ## 通过文件名或者标准输入去创建资源
expose ## 将一个资源公开为一个新的service
run ## 在集群中运行一个特定的镜像
set ## 在对象上设置特定的功能
get ## 显示一个或多个资源
explain ## 文档参考资料
edit ## 使用默认的编辑器编辑一个资源
delete ## 通过文件名。标准输入,资源名称或标签选择器来删除资源
部署命令:
kubectl rollout ## 管理资源发布
rolling-update ## 对给定的复制控制器滚动更新
scale ## 扩容和缩容pod的数量,Deployment RepliceSet RC或Job
autoscale ## 创建一个自动选择扩容或缩容并设置pod数量
集群管理命令:
kubectl certificete ## 修改证书资源
cluster-info ## 显示集群信息
top ## 显示资源(CPU/MEMORY/STORAGE)使用.需要运行Heapster
cordon ## 标记节点不可调度
uncordon ## 标记节点可调度
drain ## 驱逐节点上的应用,准备下线维护
taint ## 修改节点taint标记
故障和调式命令:
kubectl describe ## 显示特定资源或资源组的详细信息
logs ## 在一个pod中打印一个容器的日志
attach ## 附加到一个运行的容器
exec ## 指定命令到容器
port-forward ## 转发一个或多个本地端口到pod
proxy ## 运行一个proxy到k8s API server
cp ## 拷贝文件或目录到容器
auth ## 检查授权
其他命令:
apply ## 通过文件或者标准输入对资源应用配置
patch ## 使用补丁修改,更新资源的字段
replace ## 通过文件名或标准输入替换一个资源
convert ## 不同的API版本之间转换配置文件
label ## 更新资源上的标签
annotate ## 更新资源上的注释
completion ## 用于实现kubectl工具自动补全
api-server ## 打印受支持的API版本
config ## 四u该kubeconfig文件(用于访问API,比如认证信息等)
help ## 所有命令帮助
plugin ## 运行一个命令行插件
version ## 打印客户端和服务端的版本信息
总结:
- 查看pod的运行状态
kubectl get pod -n default
2.查看一个pod的详细信息
kubectl describe pod myapp-pod
3.查看一个pod中单个容器的日志信息
kubectl log myapp-pod -c test
4.删除单个pod
kubectl delete myapp-pod
5.查看pod的详细信息
kubectl get pod -o wide
6.查看pod的标签
kubectl get pod --show-labels
7.更改pod的标签
kubectl label pod {pod名称} app=app
8.查看deployment
kubectl get deployment
9.查看service
kubectl get rs
10.查看所有命名空间
kubectl get ns
查看那个命名空间的pod需要使用-n 指定命名空间,如果执行查看的是
10.扩容副本数(deployment)
kubectl scale deployment {deployment名称} --replicas=10
11.版本更新
kubectl set image deployment/nginx-deployment nginx=nginx:1.14
12.版本回滚
kubectl rollout undo deployment/nginx-deployment
13.查看当前的更新状态
kubectl rollout status deployment/nginx-deployment
14.查看更新的历史版本
kubectl rollout history deployment/nginx-deployment
15.使用yaml创建pod ##–record:显示历史更新版本
kubectl apply -f deployment.yaml --recoed
16.查看历史更新版本
kubectl rollout history deployment/nginx-deployment
17.可以使用 --to-revision参数指定某个历史版本
kubectl rollout undo deployment/nginx-deployment --to-revision=2
18.将压缩包中的上传到docker上
docker load -i perl.tar
19.查看调度情况
ipvsadm -Ln
- 添加污点,查看和去除
kubectl taint nodes node1 key1=values1:NoSchedule
21.查看污点
kubectl describe pod pod-name
22.删除污点
kubectl taint nodes node1 key1:NoSchedule
kubectl taint nodes node1 key1=values1:NoSchedule-
实操命令:
kubectl create -f xxx.yaml
查看pod
kubectl get pod/po {pod_name}
kubectl get pod/po {pod_name} -o wide
kubectl desribe pod/po {pod_name}
删除pod:
kubectl delete -f xxx.yaml
kubectl delete pod --all/{pod_name}