k8s的yaml相关指令以及操作案例

Posted 爱上口袋的天空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s的yaml相关指令以及操作案例相关的知识,希望对你有一定的参考价值。

1.required属性指令,必须存在的属性【创建资源清单的时候没有这些属性的存在它是不允许被执行的】

2.optional,主要属性【这些属性比较重要,如果不指定的话系统会自动补充默认值】






3.other,额外的的一些属性。

4.查看资源有那些资源清单属性,使用以下命令

# 查询所有的资源清单资源
kubectl explain pod

# 查看属性说明
kubectl explain pod.apiVersion

5.下面我们定义一个deployment基于上传到harbor上的镜像

  1. 我们在/opt目录下定义一个myapp-deployment.yml,内容如下
    #这个是我们的版本信息
    apiVersion: apps/v1 
    #这个表示资源类型我们创建的是deployment
    kind: Deployment
    metadata: #这个里面定义的是deployment中我们创建的对象信息
      #对象名称
      name: myapp-deploy
      #元数据名称空间
      namespace: default
     # 第一段: 用来描述Deployment对象。
    spec: #这个是对详细对象的定义
      # 告知副本控制器ReplicaSet维护3个副本
      replicas: 3  
      #通过标签选择器去维护pod
      selector:    
        matchLabels:
          #用来匹配pod名称为myapp  
          app: myapp
          #匹配版本类型是stable的pod
          release: stabel 
      # 第二段:给ReplicaSet来使用的。
      template: #template下面是用来描述pod的
        #定义pod元数据信息
        metadata: 
          labels: #为我们的pod打个标签和上面的selector匹配的标签保持一致 
            app: myapp
            release: stabel
            env: test
        spec: #对pod进行详细的定义
          containers: #在这里定义容器信息
          #容器的名称
          - name: myapp
            #定义我们要用到的镜像名称 
            image: hub.harbor.com/library/myapp:v1
            #定义镜像的拉取策略
            imagePullPolicy: IfNotPresent
            ports: #指定容器需要用到的端口列表
            #指定端口名称
            - name: http
              #指定容器需要监听的端口号
              containerPort: 80
    # 第三段:描述pod
  2. 使用命令执行我们的yaml文件
    命令:kubectl create -f myapp-deployment.yaml
  3. 我们使用curl测试一下
  4. 上面的案例现在是不能对外网提供服务的,因为我们现在没有创建service,那么下面我们用yaml文件再创建一个service
    在/opt目录下创建一个myapp-svc.yaml文件

    内容如下:
    #service版本
    apiVersion: v1
    #这个表示资源类型我们创建的是Service
    kind: Service
    metadata: #这个里面定义的是Service中我们创建的对象信息
      #对象名称
      name: myweb
      #元数据名称空间
      namespace: default
    spec: #下面定义service的详细信息
      #类型为NodePort
      type: NodePort
      selector: #通过标签选择器去查询对应版本的pod,最后组成一个service
        app: myapp
        release: stabel
      ports: #指定容器需要用到的端口列表
      #指定端口名称 
      - name: http
        #服务对外的端口
        port: 80
        #容器的端口
        targetPort: 80

     

  5. 下面通过命令运行yaml脚本
    命令:kubectl apply -f myapp-svc.yaml
  6. 下面我们通过外网访问一下

以上是关于k8s的yaml相关指令以及操作案例的主要内容,如果未能解决你的问题,请参考以下文章

K8S------YAML文件详解及示例

K8S------YAML文件详解及示例

K8S------YAML文件详解及示例

K8S------YAML文件详解及示例

Y服务-你真的懂 Yaml 吗

k8s资源限制