K8S(二)资源

目录

K8S的资源

分类:

名称空间级别:

集群级别:

元数级别:

资源清单

yaml支持的数据结构

对象:

数组:

单个的不可在分的值

k8s常用字段

必须有的属性


K8S的资源

分类:

名称空间级别:

使用 kubeadm 安装 k8s 会默认把所有组件放到 kube-system 的空间下去运行,在使用 kubectl get pod 的时候有些 pod 查不到,后面什么都不加的情况下默认为 -n default

1.工作负载型资源:Pod        ReplicaSet        Deployment        StatefulSet        Job        CronJob

2.服务发现以及均衡负载型资源(ServiceDiscovery   LoadBalance):        Service        Ingress........

3.配置与存储性资源:    Volune(存储卷)        CSI(容器存储接口,可以扩展各种各样的第三方存储卷)

4.特殊类型的存储卷:   ConfigMap(当配置中心来使用的资源类型)        Secret(保存敏感数据)       DownwardAPI(把外部环境中的信息输出给容器)

集群级别:

经过定义之后在全集群中都能调用,不管在什么名称空间下去定义,在其他名称空间下都能查询到。

Namespace        Node        ClusterRole        RoleBinding        ClusterRoleBinding

元数级别:

通过指标进行操作,例如HPA(根据cpu使用率来操作)

HPA        PodTemplate        LimitRange

资源清单

在k8s中一般使用yaml格式。不能使用 tab 键,相同层级的元素左侧需要对齐。

yaml支持的数据结构

对象:

键值对的集合,又称为映射/哈希/字典

数组:

一组按照序列排序的值,又称为序列/列表

纯量:

单个的不可在分的值

parent:~                        #######在yaml中 ~ 代表  null

date: 2021-10-15

字符串:

不需要 “” 或 ‘’,但如果字符串中有特殊字符或者空格,需要 ‘’ 。如果 ‘’ 中有 ‘’ 需要添加 ‘’ 例如:str: ‘laber’’s day’。

字符串可以写成多行,例如:        str:这是一段

                                                               多行                                        #### ‘多’ 和上面的 ‘r’ 对齐

                                                               字符段

也可以用:| 或者 > 来换行。| + 表示保留文字块末尾的换行,| - 表示删除。

this: |                        this: >

is                                 is                                                        ####  i 和 上面的 t 对齐

book                           book

k8s常用字段

可以使用        kubectl explain pod/svc....        来查看具体可以写什么字段。

                        kubectl explain pod.apiVersion        查看更详细的内容

必须有的属性

version                                String                指k8s的版本,可以使用kubectl api-versions查询

kind                                      String                yaml文件中定义的资源类型和角色,比如pod

metadata                             Object               元数据对象,固定值就写metadata

metadata.name                  String                元数据对象的名称,由自己编写,例如pod的名称

metadata..namespace      String                元数据对象的名称空间,自己写,如果不写默认default

Spec                                    Object               详细定义对象,固定就写Spec

Spec.containers[]               list                     Spec对象的容器列表定义,是个列表

Spec.containers[].name    String                定义容器的名称

Spec.containers[].image   String                定义镜像的名称

eg:编写一个资源清单,运行myapp:v1(自己的harbor仓库中有该镜像)

vim pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: myapp
  namespace: default
  labels:                    ###标签
    app: myapp
    version: v1
spec:
  containers:
  - name: app
    image: myapp:v1
  - name: test
    image: nginx

无法正常运行,会不断重启,因为在一个pod中 myapp 和 ningx 都使用80 端口。

使用 kubectl describe pod mypod可以看到  test  不断重启。

使用kubectl logs myapp -c test 查看 test 的日志

 去除yaml中最下面两行,删掉 mypod,在使用 kubectl apply -f pod.yaml 再一次创建即可。

使用 kubectl get pod -o wide 查看pod具体信息。curl 访问查询的ip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值