合肥网站建站工作室,网站建设合同书下载,上海网站建设__永灿品牌建站,即墨网络有限公司Kubectl 命令详解#xff5c;K8S资源对象管理#xff5c;K8S集群管理 kubectl管理命令kubectl get 查询资源常用的排错命令kubectl run 创建容器 POD原理pod的生命周期 k8s资源对象管理资源文件使用资源文件管理对象Pod资源文件deploy资源文件 集群调度的规则扩容与缩减集群更… Kubectl 命令详解K8S资源对象管理K8S集群管理 kubectl管理命令kubectl get 查询资源常用的排错命令kubectl run 创建容器 POD原理pod的生命周期 k8s资源对象管理资源文件使用资源文件管理对象Pod资源文件deploy资源文件 集群调度的规则扩容与缩减集群更新与回滚集群调度 kubectl管理命令 是用于控制k8s集群的命令行工具 语法格式
kubectl [command] [TYPE] [NAME] [flags]command : 子命令 如create get describe delete TYPE: 资源类型可以表示为单数、复数或缩写形式name: 资源的名称如果省略则显示所有资源信息flags: 指定可选标志 或附加的参数kubectl get 查询资源
get nodes 查询节点状态get deployment 查询资源名称get componentstatuses 组键的状态 这个名称空间相当于每个盘 pod相当于目录
常用的排错命令
kubectl describe 资源类型 资源名称查看资源信息信息 kubectl logs 容器名称 查看console 终端的输出信息为空是正常现象 表示没有日志输出
kubectl run 创建容器
kubectl run 资源名称 -i -t --image私有仓库镜像名称:标签POD原理 pod的生命周期
无限运行周期 有限运行周期 – 选项终止符号 rm -rf – -f 删除得从上往下删除
通过资源文件的创建的容器 也可以通过资源文件的方式删除
k8s资源对象管理
资源文件
k8s通过RC/RS管理POD在RC中定义了如何启动POD如何运行启用几副本等功能如果我们创建的文件在其中使用yaml的语法格式描述了上面的信息这个文件就是我们的资源对象文件 资源对象文件有什么用
可以创建、删除、管理资源对象很多高级的复杂的功能靠简单的命令方式无法实现这些都需要使用资源文件描述
使用资源文件管理对象
create 创建资源对象apply 声明更新资源对象 可以多次执行delete 删除资源对象
kubectl (apply|create|delete) -f 资源文件Pod资源文件 deploy资源文件 集群调度的规则
扩容与缩减
[rootmaster ~]# kubectl get deployments.apps
[rootmaster ~]# kubectl scale deployment myapache --replicas3 # 增加3个myapache
[rootmaster ~]# kubectl get deployments.apps集群更新与回滚 [rootmaster config]# kubectl rollout history deployment myapache[rootmaster ~]# curl http://10.244.3.5
this is apache
[rootmaster ~]# kubectl edit deployments.apps myapache 修改配置文件镜像为nginx
[rootmaster ~]# curl http://10.244.2.6
this is nginx
[rootmaster ~]# kubectl rollout history deployment myapache# 回滚版本到1
[rootmaster ~]# kubectl rollout undo deployment myapache --to-revision1
[rootmaster ~]# curl http://10.244.3.6
this is apache集群调度
容器创建是随机的如何选择固定的宿主机 使用nodeName标签根据节点名称选择宿主机
spec: # POD.SPEC标签nodeName:node-0001 # 直接指定node主机名称 简单粗暴
# 注意 如果添加了选择标签 但无法使用该主机 pod将一直处于Pending状态 如何使用一类宿主机
需要提前为目标主机打上特定的标签可以是多台在资源文件中根据标签选择宿主机更加灵活
spec: # POD.SPEC标签nodeSelector: # 标签选择disktype:ssd # node 表情打标签的格式 删除标签
kubectl label pod myapache-7b689bf8f-5sczz key-基于标签的调度
[rootmaster ~]# kubectl label nodes node-0002 node-0003 disktypessd
node/node-0002 labeled
node/node-0003 labeled
[rootmaster ~]# vim myhttpd.yaml
---
kind: Pod
apiVersion: v1
metadata:name: myhttpdlabels:app: apache
spec:terminationGracePeriodSeconds: 0restartPolicy: AlwaysnodeSelector: # 修改后的disktype: ssd # 修改后的containers:- name: apacheimage: myos:httpdimagePullPolicy: IfNotPresentports:- protocol: TCPcontainerPort: 80[rootmaster ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
myhttpd 1/1 Running 0 29m 10.244.3.80 node-0003
web1 1/1 Running 0 10s 10.244.2.60 node-0002
web2 1/1 Running 0 10s 10.244.3.82 node-0003
web3 1/1 Running 0 10s 10.244.2.61 node-0002
web4 1/1 Running 0 10s 10.244.2.62 node-0002
web5 1/1 Running 0 10s 10.244.3.81 node-0003
[rootmaster ~]# kubectl label nodes node-0002 node-0003 disktype- # 标签还原