k8s中yaml配置文件说明

apiVersion: extensions/v1beta1 #指定api版本,此值必须在kubectl apiversion中  
kind: Deployment #指定创建资源的角色/类型 
metadata: #资源的元数据/属性 
  name: base #资源的名字,在同一个namespace中必须唯一  
  namespace: test  # 指定命名空间
spec:              # 指定该资源的内容  
  replicas: 1   # 创建pod个数
  template:
    metadata:
      labels:  # 标签
        app: base
        tier: backend
    spec:
      containers:
      - name: base  # 容器名称
        image: base  # 启动该容器的镜像
        command: ["java"]  #启动容器的运行命令,将覆盖容器中的Entrypoint,对应Dockefile中的ENTRYPOINT
        args: ["-Duser.timezone=GMT+08", "-Xms1500m","-Xmx1500m","-XX:NewRatio=3","-XX:SurvivorRatio=8", "-XX:PermSize=128M", "-XX:MaxPermSize=256m","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
        resources: # 资源管理
          requests:  #容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行
            cpu: 100m  #CPU资源(核数),两种方式,浮点数或者是整数+m,0.1=100m,最少值为0.001核(1m)
            memory: 1Gi  #内存使用量 
          limits:  # 资源限制上限
            cpu: 1000m
            memory: 2Gi
        volumeMounts: #详情请见https://jimmysong.io/kubernetes-handbook/concepts/volume.html
        - name: app-logs #挂载设备的名字,与volumes[*].name 需要对应
          mountPath: /usr/local/app_logs  #挂载到容器的某个路径下
        - name: kafka-msg
          mountPath: /usr/xxtsrc/projfile/kafka_msg
          # subPath: kafka_msg
        env:  #指定容器中的环境变量
        - name: SPRING_APPLICATION_JSON   #变量的名字
          value: '{"spring.profiles.active": "dev", "x.kafka.consumer.enable": false, "x.scheduled.run.singleton.job": false}'
        #- name: JAVA_OPTS
          #value: -Xmx512m
        ports:
        - containerPort: 8080 #容器开发对外的端口
      volumes:  #定义一组挂载设备 详情请见https://jimmysong.io/kubernetes-handbook/concepts/volume.html
      - name: app-logs  #定义一个挂载设备的名字  
        hostPath:
         path: /opt/logs #挂载设备类型为hostPath,路径为宿主机下的/opt/logs
      - name: kafka-msg
        persistentVolumeClaim: # 持久卷声明   是在用户不知道特定云环境的细节的情况下“声明”持久化存储(
          claimName: kafka-msg
---
apiVersion: v1
kind: Service
metadata:
  name: base
  labels:
    app: base
    tier: backend
  namespace: test
spec:
  ports:
  - port: 80 # 对外暴漏端口
    targetPort: 8080 # 被映射端口
  selector: # 标签选择器,与Deployment中labels对应
    app: base
    tier: backend
Kubernetes 使用 YAML 文件来定义资源对象(例如 Pod、Deployment、Service 等),YAML 文件是一种人类可读的格式,它可以帮助我们更好地理解和管理 Kubernetes 资源对象。下面是一些常用的 Kubernetes YAML 配置选项和它们的含义: 1. `apiVersion`:API 版本号,它定义了 Kubernetes 某个 API 的版本。例如,`apiVersion: v1` 表示使用 Kubernetes API 的 v1 版本。 2. `kind`:资源对象类型,它定义了要创建的 Kubernetes 资源的类型。例如,`kind: Pod` 表示要创建一个 Pod。 3. `metadata`:元数据,它包含了 Kubernetes 资源对象的一些基本信息,例如名称、标签等。 4. `spec`:规范,它定义了 Kubernetes 资源对象的详细配置信息,例如容器镜像、端口映射、存储卷等。 5. `selector`:选择器,它定义了 Service 和 Deployment 之间的关系,例如通过标签选择器将 Deployment 的 Pod 与 Service 关联起来。 6. `replicas`:副本数,它定义了 Deployment 要创建的 Pod 的数量。 7. `containers`:容器列表,它定义了 Pod 要创建的容器的详细配置信息,例如容器镜像、命令等。 8. `ports`:端口列表,它定义了 Service 要暴露的端口和协议,例如 TCP、UDP 端口等。 9. `volumeMounts`:挂载列表,它定义了 Pod 容器要挂载的存储卷的详细配置信息。 10. `volumes`:存储卷列表,它定义了 Kubernetes 可用的存储卷类型和配置信息。 这些是常用的 Kubernetes YAML 配置选项,当然还有很多其他的选项和配置,不过我们可以根据需要来选择使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值