Kubernetes系列--Kubectl 命令管理 | 参数详解
Kubectl 命令管理Kubectl 命令管理Kubectl 帮助信息Kubectl 管理项目命令kubectl run 命令查看Pods状态查看资源创建的位置查看所有资源信息kubect delete 删除命令删除资源删除nginx-deployment项目周期流程① 创建nginx② 发布nginx(service提供负载均衡的功能)③ 版本更新④ 回滚⑤ 删除总结:Kubectl 命令管理
·
Kubectl 命令管理
Kubectl 命令管理
Kubectl 帮助信息
命令:kubectl --help
常用的命令:
create:创建资源(可以从文件或这标准性输入)
expose:暴露资源。把资源对外提供出去(提供端口)
run :运行指定镜像
set :设置指定的对象(例如版本号)
explain:查询资源文件
get:显示信息
edit:编辑指定资源
delete:删除
更新机制:
rollout:回滚
scale:创建多个副本–副本内容相同(弹性伸缩)
autoscale:自动调整(自动化弹性伸缩)
群集管理命令:
certificate:修改certificate资源(例如审批通过node节点申请加入集群的请求)
cluster-info :显示集群信息
top:显示更详细的原站点信息
cordon:标记node 为unscheduleable(状态)
uncordon:标记node 为scheduleable(状态)
taint:更新一个或多个节点信息
问题和调试命令:
describe:显示一个指定的源或组的源信息
logs:输出容器在Pod中的日志
attach:把指定组件运行在指定容器中
exec:进入一个pod资源
port-forward:转发一个霍多个本地的端口到一个pod中
proxy:运行一个代理到k8s的apiserver
cp:复制
auth:验证
Kubectl 管理项目命令
项目完整的生命周期如下:
创建–》发布–》更新–》回滚–》删除
kubectl run 命令
格式如下:
kubectl run NAME --image=image [–env=“key=value”] [–port=port] [–replicas=replicas] [–dry-run=bool] [–overrides=inline-json] [–command] – [COMMAND] [args…] [options]
参数简介:
NAME:资源名称
–image=image:指定镜像
[–env=“key=value”]:设置Pod中一些参数/变量
[–port=port] :提供的端口
[–replicas=replicas]:副本集的数量
[–dry-run=bool]:试运行的池
[–overrides=inline-json]:是否在线
[–command] – [COMMAND] [args…] [options]:其他的参数指令
示例:
#创建一个nginx 资源,指定对外提供端口为80,副本集为3个
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3
查看Pods状态
kubectl get pods
#apiserver会自动控制创建Pod(以上已有一个pod为running状态)
#过一会再次查看
kubectl get pods
#已全部为运行状态
查看资源创建的位置
kubectl get pods -o wide
#可见,在node1节点创建了2个副本,在node2节点创建了一个副本
查看所有资源信息
kubectl get all
#以上为刚刚创建的3个副本资源
#以上的service资源信息为之前创建的对外提供服务的资源(10.0.0.1为集群内部的网关)
#以上deployment 为控制器的资源,想要创建pod资源,需要先调用控制器的资源去控制创建Pod资源,所以需要先创建控制器资源
#以上为副本集的资源
小结:Pod资源的创建伴随着控制器资源的创建和副本集资源的创建
kubect delete 删除命令
删除资源
kubectl delete deploy/nginx
# 再次查看pods状态
kubectl get pods
#Nginx资源已被删除
删除nginx-deployment
kubectl delete deploy/nginx-deployment
#再次查看pod资源
kubectl get pods
项目周期流程
项目的生命周期为:创建–》发布–》更新–》回滚–》删除
① 创建nginx
#创建nginx
kubectl run nginx --image=nginx:latest --port=80 --replicas=3
#查看pods状态(容器创建,一定会伴随deployment和replaces的创建
kubectl get pods,deployment,replicaset
② 发布nginx(service提供负载均衡的功能)
kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort
#查看服务信息
kubectl get svc
#类型为NodePort IP是群集IP PORT端口 80为内部端口,41558是对外的端口/TCP协议
#外网口只要访问41558端口,就会由kube-proxy负载均衡调用后端Pod资源
查看关联后端的节点
kubectl get endpoints
#查看资源对象简写
kubectl api-resources
#在node1操作,查验是否开启了负载均衡及对外提供的端口是否为41558
#K8S中kube-proxy支持三种模式,在v1.8之前使用的是iptables及userspace两种模式,在kubernetes1.8之后引入了ipvs模式
--node1--
#安装ipvsadm工具
yum install ipvsadm -y
#ipvsadm lvs内核管理工具
--node1--
ipvsadm -L -n
----master1操作,查看访问日志---------
#https://192.168.78.66:41558
#https://192.168.78.77:41558
--master---
#查看Pod资源信息
kubectl get pods
#查看日志
kubectl logs nginx-7697996758-89wqz
kubectl logs nginx-7697996758-dtdgm
kubectl logs nginx-7697996758-qwvx6
#可见访问者是doocker0网关
#同时可见proxy提供了负载均衡的功能,会把请求按照轮询的机制分配给后端的节点
node1
node2
③ 版本更新
再次访问网页,查看“更多工具”----》“开发者工具”----》点击Name 中的地址----》查看headers头部信息可查看到版本,如下:
#修改模板、更新
#更新nginx 到1.14版本
kubectl set image deployment/nginx nginx=nginx:1.14
#可查看更新过程
kubectl get pods -w
#稍等一会再次查看pods资源
kubectl get pods
#可查看到出了三个新的容器
#容器更新过程:创建一个容器,停止并删除第一个待更新的容器,
容器更新过程:先创建一个容器,停止并删除第一个待更新的容器,待第一个新容器运行时,再开始创建第二个容器,同时删除第二个待更新容器。
小结:保持pods池中有三个可运行的容器(固定容器数量是由replicaset进行控制)
再次访问网页验证
④ 回滚
#假设版本更新之后,业务线发现用户无法访问网页,此时就需要使用到回滚操作
#查看历史版本
kubectl rollout history deployment/nginx
#因为之前更新过,所以有两个版本
#执行回滚、查看回滚状态
#执行回滚
kubectl rollout undo deployment/nginx
#查看回滚状态
kubectl rollout status deployment/nginx
#再次查看状态
kubectl rollout history deployment/nginx
⑤ 删除
#需要注意的一点是,在资源创建的时候,会有三个资源产生,即 pods deployment replicaset,但是只要把业务提供给出去,必定创建Service资源。所以在删除时需要一并把service资源删除,避免资源占用
#删除操作
#删除nginx资源deployment是控制器
kubectl delete deployment/nginx
#查看状态,已被删除
kubectl get pods
#查看服务nginx-service的服务端口还对外开放着,所以也需要一并删除
kubectl get svc
#删除nginx-service
kubectl delete svc/nginx-service
#查看服务状态
kubectl get svc
#详细信息
如果容器处于卡住的状态,可以使用以下命令查看日志信息(event字段)
kubectl describe pod nginx-6ff7c89c7c-b96v8
总结:
kbectl管理命令的参数、命令及其中的调度原理是非常重要的
更多推荐
已为社区贡献3条内容
所有评论(0)