文章目录
一、 kubectl --help 详解
1、基础命令
create 创建资源
expose 使用 replication controller, service, deployment 或者 pod
并暴露它作为一个 新的 Kubernetes Service 主要是暴露端口
run 在集群中运行一个指定的镜像
set 为 objects 设置一个指定的特征 做版本设置的时侯会用到
2、中级指令
explain 查看资源的文档
get 显示一个或更多 get pod get node get all(可以查看所有)
edit 直接编辑现在运行的资源
delete 删除资源
3、部署性指令
rollout 回滚到上一级
scale 为 Deployment, ReplicaSet, Replication Controller 或者 Job
设置一个新的副本数量 弹性伸缩的功能 设置副本数量
autoscale 自动调整一个 Deployment, 副本级, 自动弹性收缩
4、集群管理指令
certificate 证书颁发
cluster-info 显示集群信息
top 查看pod的动态资源状态
cordon 标记为污点
uncordon 清除污点
drain 节点维护的时候使用这条指令 在升级的时候使用
taint 污点(一旦某个节点,打上污点的标记 就不会再它上面创建资源
探针是查看节点的健康值
5、查看pod信息
describe 详细显示 pod的信息 $ kubectl describe nodes kubernetes-minion-emt8.c.myproject.internal
logs 输出容器在 pod 中的日志
attach 用于连接到一个指定的容器 并不是进入容器 相当于远程连接容器
exec 进入容器 跟容器进行交互
port-forward 端口转发到一个或者多个端口 端口映射
proxy 代理apiserver
cp 从本地复制一个东西到容器中
auth 安全验证
6、高级指令
apply 业务更新使用
patch 更新一个指定文件的资源
replace 替换一个资源
wait 等待 超时时间
convert 做二次开发的时候 要用到api版本 要写进调度文件
7、设置指令
label 打标签
annotate 打注释
completion Output shell completion code for the specified shell (bash or zsh)
8、其他指令
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、常见管理容器生命周期操作命令
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状态的无法删除的资源处理
[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