一、 kubectl --help 详解
1、基础命令
代码语言:javascript
复制 create 创建资源
expose 使用 replication controller, service, deployment 或者 pod
并暴露它作为一个 新的 Kubernetes Service 主要是暴露端口
run 在集群中运行一个指定的镜像
set 为 objects 设置一个指定的特征 做版本设置的时侯会用到
2、中级指令
代码语言:javascript
复制 explain 查看资源的文档
get 显示一个或更多 get pod get node get all(可以查看所有)
edit 直接编辑现在运行的资源
delete 删除资源
3、部署性指令
代码语言:javascript
复制rollout 回滚到上一级
scale 为 Deployment, ReplicaSet, Replication Controller 或者 Job
设置一个新的副本数量 弹性伸缩的功能 设置副本数量
autoscale 自动调整一个 Deployment, 副本级, 自动弹性收缩
4、集群管理指令
代码语言:javascript
复制 certificate 证书颁发
cluster-info 显示集群信息
top 查看pod的动态资源状态
cordon 标记为污点
uncordon 清除污点
drain 节点维护的时候使用这条指令 在升级的时候使用
taint 污点(一旦某个节点,打上污点的标记 就不会再它上面创建资源
探针是查看节点的健康值
5、查看pod信息
代码语言:javascript
复制 describe 详细显示 pod的信息 $ kubectl describe nodes kubernetes-minion-emt8.c.myproject.internal
logs 输出容器在 pod 中的日志
attach 用于连接到一个指定的容器 并不是进入容器 相当于远程连接容器
exec 进入容器 跟容器进行交互
port-forward 端口转发到一个或者多个端口 端口映射
proxy 代理apiserver
cp 从本地复制一个东西到容器中
auth 安全验证
6、高级指令
代码语言:javascript
复制 apply 业务更新使用
patch 更新一个指定文件的资源
replace 替换一个资源
wait 等待 超时时间
convert 做二次开发的时候 要用到api版本 要写进调度文件
7、设置指令
代码语言:javascript
复制 label 打标签
annotate 打注释
completion Output shell completion code for the specified shell (bash or zsh)
8、其他指令
代码语言:javascript
复制 alpha Commands for features in alpha
api-resources 哪一些资源名称可以缩写
api-versions 可以看到apiversion版本信息 哪些可用
config 修改 kubeconfig 文件
plugin Provides utilities for interacting with plugins.
version 输出 client 和 server 的版本信息
二、kuberctl常见运维命令
1、常见管理容器生命周期操作命令
代码语言:javascript
复制kubectl run nginx-test --image=nginx --port=80 --replicas=3 //创建三个nginx实例
kubectl get pods -w //-w:动态查看
kubectl get pods -o wide //查看资源创建在那个节点上
kubectl get all //查看更详细信息:副本资源和控制器资源
kubectl get deployment,replicaset //仅查询pod资源的两个项
kubectl get svc //查看原有的service服务
kubectl expose deployment nginx-test --port=80 --target-port=80 --name=nginx-service --type=NodePort //将刚刚创建的暴露出来
kubectl get endpoints //查看具体的service是在哪一台节点上创建的
kubectl api-resources //查询所有可以缩写的服务
yum -y install ipvsadm //1.18版本以后使用ipvs进行负载均衡
ipvsadm -Ln //-L是以列表显示 -n是以数字显示 查看负载的端口和ip 对应访问
kubectl logs nginx-test-7fcfb6488c-mmhrm //查看访问日志 可以先get pod 然后查看id
kubectl set image deployment/nginx-test nginx-test=nginx:1.13 //滚动更新nginx的版本kuberctl get pod -w 动态查看
kubectl rollout history deployment/nginx-test //查看回滚历史
kubectl rollout undo deployment/nginx-test //执行回滚 回滚到上一次更新的地方
kubectl delete deployment/nginx-test //删除pod
kubectl delete svc/nginx-service //删除service
kubectl describe deployment.apps //查看deployment控制器的所有子控制器
kubectl exec -it nginx-dbddb74b8-5s6h7 bash //进容器命令
kubectl run nginx-test01 --image=nginx --port=80 --replicas=2 --dry-run -o yaml //此命令直接生成yaml文件内容展示出来,并不会保存
kubectl run nginx-test01 --image=nginx --port=80 --replicas=2 --dry-run -o json //也可以生成json格式
kubectl run nginx-test01 --image=nginx --port=80 --replicas=2 --dry-run -o yaml > nginx-test01.yaml //自动生成yaml格式的文件并保存
kubectl get deployment/nginx --export -o yaml > nginx-test02.yaml //将现有的资源导入到yaml文件 也是相当于备份了
kubectl explain pods.spec.containers //查看yaml文件中的某一字段的帮助信息
kubectl delete pod xxx --force --grace-period=0 //强制删除某一pod
[root@localhost yaml]# kubectl scale deployment nginx-test --replicas=4 //加控制节点 replicas 设置成4个节点
kuberctl edit deploy/nginx //编辑yaml文件 这里注意的是编辑的是deployment控制器
2、Terminating状态的无法删除的资源处理
代码语言:javascript
复制[root@localhost demo]# kubectl get pods
NAME READY STATUS RESTARTS AGE
my-tomcat-57667b9d9-nklvj 1/1 Terminating 0 10h
my-tomcat-57667b9d9-wllnp 1/1 Terminating 0 10h
//这种情况下可以使用强制删除命令:
kubectl delete pod [pod name] --force --grace-period=0 -n [namespace]
[root@localhost demo]# kubectl delete pod my-tomcat-57667b9d9-nklvj --force --grace-period=0 -n default