kubernetes——kubectl命令管理
- 一、kubectl基本命令
- 1、创建命令
- 2、查看
- 3、删除
- 4、发布资源
- 5、查看kubectl简写
- 二、项目周期的创建
- 1、创建nginx
- 2、发布服务
- 3、查看关联后的节点
- 4、查看网络状态详细信息
- 5、服务暴露端口
- 6、验证负载均衡
- 7、查看日志
- 8、更新nginx版本
- 9、回滚nginx
- 10、查看nginx的资源信息
- 11、进入pod
- 12、删除nginx
- 13、删除服务svc
一、kubectl基本命令
kubectl是管理k8s集群的命令行工具,通过生成的json格式传递给apiserver进行创建、查看、管理的操作
命令 | 描述 |
create | 创建资源 |
expose | 把资源提供出去呗外部直接访问 |
run | 在集群中运行一个指定的镜像 |
set | 为objects设置一个指定的特征 |
explain | 查看资源的文档 |
get | 显示一个或更多资源 |
edit | 在服务器上编辑一个资源 |
delete | 删除 |
rollout | 回滚(更新一个资源,出现了问题或不兼容,需要还原原本的状态) |
scale | 设置一个新的副本数量 |
autooscale | 自动调整副本数量 |
certificate | 修改certificate资源(证书授权时使用) |
cluster-info | 显示集群信息 |
top | 显示资源的基本信息 |
cordon | 标记node为污点(污点表示不分配任务给这个节点) |
uncordon | 取消node污点 |
drain | 删除node节点 |
taint | 更新一个或者多个node上的污点 |
describe | 显示一个指定资源的详情 |
logs | 输出容器在pod中的日志 |
attach | 附加到一个运行中的容器 |
exec | 在一个容器中执行一个命令 |
port-forward | 为pod转发一个或多个 |
proxy | 运行一个代理到kubernetes API Server |
cp | 复制文件或目录到容器里或者从容其中复制文件和目录 |
auth | 检查授权 |
1、创建命令
#格式
kubectl run NAME --image=image [-env=“key=value”] [-port=port] [-replicas=replicas] [-dry-run=bool] [-overrides=inline-json] [-command] - [COMMAND] [args…] [options]
NAME:资源名称
–image:指向镜像
–env:指定参数,变量
–port:指定端口
–replicas:指定副本集数量
–dry-run:试运行
–overrides:是否在线
–command:参数质量
例如:创建nginx多副本
[root@master1 opt]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3
#资源名称:nginx-deployment、镜像:nginx、port端口80、副本replicas3个
2、查看
#查看pod资源
[root@master1 opt]# kubectl get pods
#查看创建状态
[root@master1 opt]# kubectl get pdos -w
#查看全部资源信息,包括service的资源信息(提供对外资源),deployment控制器的资源,replicaset副本集资源
[root@master1 opt]# kubectl get all
3、删除
#删除一个资源
[root@master1 ~]# kubectl delete deploy/nginx
#删除多个资源
[root@master1 ~]# kubectl delete deploy/nginx-deployment
4、发布资源
kubectl expose (-f FILENAME | TYPE NAME) [–port=port] [–protocol=TCP|UDP|SCTP]
[–target-port=number-or-name] [–name=name] [–external-ip=external-ip-of-service] [–type=type]
[options]#expose:发布
-f:指定文件
–port:对外提供端口
-target-port:目标端口
–name:资源名称
5、查看kubectl简写
[root@master1 ~]# kubectl api-resources
二、项目周期的创建
1、创建nginx
[root@master1 ~]# kubectl run nginx --image=nginx:latest --port=80 --replicas=3
#查看资源
[root@master1 ~]# kubectl get pods
2、发布服务
[root@master1 ~]# kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort
3、查看关联后的节点
[root@master1 ~]# kubectl get endpoints
4、查看网络状态详细信息
[root@master1 ~]# kubectl get pods -o wide
5、服务暴露端口
[root@master1 ~]# kubectl get svc
6、验证负载均衡
#node节点安装ipvs服务进行验证
[root@node1 ~]# ipvsadm -L -n
7、查看日志
#在master上进行查看
[root@master1 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-7697996758-lx4mt 1/1 Running 1 74m
nginx-7697996758-sbmhl 1/1 Running 1 74m
nginx-7697996758-zcgtm 1/1 Running 1 74m[root@master1 ~]# kubectl logs nginx-7697996758-lx4mt
8、更新nginx版本
#查看当前版本号
进入网页——开发者工具——Network——找到访问的记录——Header——找到Server看到当前版本
#修改版本
[root@master1 ~]# kubectl set image deployment/nginx nginx=nginx:1.14
9、回滚nginx
#查看回滚信息
[root@master1 ~]# kubectl get all
#执行回滚
[root@master1 ~]# kubectl rollout undo deployment.apps/nginx
#查看回滚状态
[root@master1 ~]# kubectl rollout status deployment.apps/nginx
deployment “nginx” successfully rolled out
10、查看nginx的资源信息
[root@master1 ~]# kubectl describe deployment.apps/nginx
11、进入pod
[root@master1 ~]# kubectl exec -it nginx-7697996758-7lx9w bash
root@nginx-7697996758-7lx9w:/#
12、删除nginx
[root@master1 ~]# kubectl delete deployment.apps/nginx
#检查是否删除
[root@master1 ~]# kubectl get pods
No resources found.
13、删除服务svc
[root@master1 ~]# kubectl delete svc/nginx-service