云原生-集群管理续

一.资源清单文件

1.资源清单文件:

a.什么是资源对象?

Kubernetes 对象是"目标性记录"Kubernetes 使用这些对象去表示整个集群的状态。

b.什么是资源清单文件?

创建 Kubernetes 对象时,必须提供资源对象的一些基本信息(例如:资源的对象的名字),以及描述该对象的期望状态特征(规约)。如果我们在文件中使用 YAML 的语法格式描述了上面的信息,这个文件就是资源清单文件。

c.为什么要使用资源清单文件?

--命令无法持久化,没有历史记录,不方便重现

--服务众多,多个容器之间有关联性,管理不方便

--很多高级的复杂的功能靠简单的命令方式无法实现,这些都需要使用资源文件描述资源

--清单文件可以做什么?可

--以创建、删除、变更、管理资源对象

最简单的资源文件(举例):

bash 复制代码
---
kind: Pod  # 当前创建资源的类型
apiVersion: v1  # 当前资源对应的版本
metadata:  # 属性信息,元数据
  name: myweb  # 属性信息,资源的名称
spec:  # 资源的特性描述(规约)
  containers:  # 容器资源特征描述
    - name: nginx  # 容器的名称
      image: myos:nginx  # 启动容器使用的镜像
status: {}  # 资源状态,运行后自动生成

注释:这个 YAML 文件定义了一个 Kubernetes Pod 的配置。Pod 是 Kubernetes 中最小的可部署单元,它包含一个或多个容器。在这个例子中,Pod 包含一个名为 nginx 的容器,该容器使用 myos:nginx 镜像启动。

--kind: Pod 表示这是一个 Pod 类型的资源。

--apiVersion: v1 指定使用的 API 版本为 v1metadata 部分包含了 Pod 的元数据,如名称 myweb

--spec 部分定义了 Pod 的规格,包括容器的配置。

--containers 列表中定义了一个名为 nginx 的容器,并指定了其使用的镜像 myos:nginxs

--tatus 部分在 Pod 运行后会由 Kubernetes 自动生成,表示 Pod 的当前状态.

2.创建Pod的两种方法?

--方法1:使用run子命令创建

--方法2:使用资源清单文件

(1).创建Pod资源对象

-命令格式:kubectl [create|apply|delete] -f 资源文件名称.yaml

eg:

bash 复制代码
# 创建资源对象
[root@master ~]# kubectl create -f myweb.yaml
pod/myweb created

# 不能更新,重复执行会报错
[root@master ~]# kubectl create -f myweb.yaml
Error from server (AlreadyExists): error when creating "myweb.yaml": pods "myweb" already exists

# 删除资源对象
[root@master ~]# kubectl delete -f myweb.yaml
pod "myweb" deleted


# 创建/更新资源对象
[root@master ~]# kubectl apply -f myweb.yaml
pod/myweb created

[root@master ~]# kubectl apply -f myweb.yaml
pod/myweb configured

# 强制重建资源对象
[root@master ~]# kubectl replace --force -f myweb.yaml
pod "myweb" deleted
pod/myweb created

# 删除资源对象
[root@master ~]# kubectl delete -f myweb.yaml
pod "myweb" deleted

# 拓展提高
[root@master ~]# cat myweb.yaml |kubectl apply -f -

具体案例:

bash 复制代码
资源清单文件
[root@master ~]# vim myweb.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: myweb
spec:
  containers:
  - name: nginx
    image: myos:nginx
status: {}
管理命令
子命令	说明	备注
create	创建文件中定义的资源	支持指令式和资源清单文件配置
apply	创建(更新)文件中定义的资源	只支持资源清单文件(声明式)
delete	删除文件中定义的资源	支持指令式和资源清单文件配置
replace	更改/替换资源对象	强制重建 --force
命令示例
create

# 创建资源对象
[root@master ~]# kubectl create -f myweb.yaml 
pod/myweb created
# 不能更新,重复执行会报错
[root@master ~]# kubectl create -f myweb.yaml 
Error from server (AlreadyExists): error when creating "myweb.yaml": pods "myweb" already exists
delete

# 使用资源清单文件删除
[root@master ~]# kubectl delete -f myweb.yaml
pod "myweb" deleted
[root@master ~]# kubectl get pods
No resources found in default namespace.
apply

# 创建资源对象
[root@master ~]# kubectl apply -f myweb.yaml 
pod/myweb created
# 更新资源对象
[root@master ~]# kubectl apply -f myweb.yaml 
pod/myweb configured

# 强制重建资源对象
[root@master ~]# kubectl replace --force -f myweb.yaml 
pod "myweb" deleted
pod/myweb created

# 删除资源对象
[root@master ~]# kubectl delete -f myweb.yaml 
pod "myweb" deleted

# 拓展提高
# 与 kubectl apply -f myweb.yaml 功能相同
[root@master ~]# cat myweb.yaml |kubectl apply -f -
相关推荐
Evand J几秒前
【MATLAB例程】AOA与TDOA混合定位例程,适用于三维环境、4个锚点的情况,附下载链接
开发语言·matlab
机器视觉知识推荐、就业指导几秒前
Qt 与Halcon联合开发八: 结合Qt与Halcon实现海康相机采图显示(附源码)
开发语言·数码相机·qt
NE_STOP3 分钟前
SpringBoot--简单入门
java·spring
Heartoxx29 分钟前
c语言-指针与一维数组
c语言·开发语言·算法
hqxstudying30 分钟前
Java创建型模式---原型模式
java·开发语言·设计模式·代码规范
charlie1145141911 小时前
如何使用Qt创建一个浮在MainWindow上的滑动小Panel
开发语言·c++·qt·界面设计
容器魔方1 小时前
中选名单出炉|18位学生入选开源之夏KubeEdge课题,欢迎加入!
云原生·容器·云计算
Dcs1 小时前
VSCode等多款主流 IDE 爆出安全漏洞!插件“伪装认证”可执行恶意命令!
java
神仙别闹1 小时前
基于Python实现LSTM对股票走势的预测
开发语言·python·lstm
保持学习ing1 小时前
day1--项目搭建and内容管理模块
java·数据库·后端·docker·虚拟机