当前位置: 首页 > article >正文

07:Kubectl 命令详解|K8S资源对象管理|K8S集群管理(重难点)

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资源文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

集群调度的规则

扩容与缩减

[root@master ~]# kubectl get deployments.apps
[root@master ~]# kubectl scale deployment myapache --replicas=3 # 增加3个myapache
[root@master ~]# kubectl get deployments.apps

集群更新与回滚

在这里插入图片描述

[root@master config]# kubectl rollout history deployment myapache

在这里插入图片描述

[root@master ~]# curl http://10.244.3.5
this is apache
[root@master ~]# kubectl edit deployments.apps myapache 修改配置文件镜像为nginx
[root@master ~]# curl http://10.244.2.6
this is nginx 
[root@master ~]# kubectl rollout history deployment myapache

在这里插入图片描述

# 回滚版本到1
[root@master ~]# kubectl rollout undo deployment myapache --to-revision=1
[root@master ~]# 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-

基于标签的调度

[root@master ~]# kubectl label nodes node-0002 node-0003 disktype=ssd
node/node-0002 labeled
node/node-0003 labeled
[root@master ~]# vim myhttpd.yaml 
---
kind: Pod
apiVersion: v1
metadata:
  name: myhttpd
  labels:
    app: apache
spec:
  terminationGracePeriodSeconds: 0
  restartPolicy: Always
  nodeSelector: # 修改后的
    disktype: ssd # 修改后的
  containers:
  - name: apache
    image: myos:httpd
    imagePullPolicy: IfNotPresent
    ports:
    - protocol: TCP
      containerPort: 80

[root@master ~]# 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
[root@master ~]# kubectl label nodes node-0002 node-0003 disktype- # 标签还原
~~~![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/02582d06f48b44a1a885e8663626ec14.png#pic_center)



http://www.kler.cn/a/231169.html

相关文章:

  • 6-3、T型加减速单片机程序【51单片机+L298N步进电机系列教程】
  • 9.4 OpenGL帧缓冲:纹理和帧缓冲之间的反馈循环
  • huggingface学习|用dreambooth和lora对stable diffusion模型进行微调
  • 【JS逆向六】(上)逆向模拟生成某网站的【sig】和【payload】的值 仅供学习
  • LoveWall v2.0Pro社区型校园表白墙源码
  • 2024-02-06 TCP/UDP work
  • 国际物流数字化运输方式选择指南 | 箱讯科技
  • EMC学习笔记(二十二)降低EMI的PCB设计指南(二)
  • 代码随想录算法训练营29期Day42|卡码网46,LeetCode 416
  • 【Java EE】----Spring框架创建和使用
  • Kubernetes基础(十二)-kube-prox/CNI/服务发现(DNS域名解析)区别
  • 如何计算两个指定日期相差几年几月几日
  • VPS与云计算有什么区别?
  • 使用vite创建vue+ts项目,整合常用插件(scss、vue-router、pinia、axios等)和配置
  • CentOS7搭建Hadoop集群
  • 详解各种LLM系列|LLaMA 1 模型架构、预训练、部署优化特点总结
  • 十分钟GIS——geoserver+postgis+udig从零开始发布地图服务
  • 删除.git的影响、git分支切换时注意事项
  • Java玩转《啊哈算法》纸牌游戏之小猫钓鱼
  • 【数据分享】1929-2023年全球站点的逐年降雪深度数据(Shp\Excel\免费获取)