Kubernetes中的yaml文件

本文详细介绍了Kubernetes中YAML文件的使用,包括deployment、Pod和Service的yaml配置,解析了YAML的语法格式,如大小写敏感、缩进规则等。还通过实例演示了如何创建资源对象、查看API资源版本标签以及设置port(包括port、nodePort、targetPort和containerPort),以实现服务的外部访问。
摘要由CSDN通过智能技术生成

目录

一、deployment.yaml文件

二、Pod yaml文件

三、Service yaml文件

四、yaml文件

1.YAML 语法格式

2.查看 api 资源版本标签

3.写一个yaml文件demo

(1)创建资源对象

(2)查看创建的pod资源

(3)创建service服务对外提供访问并测试

(4)创建资源对象

(5)查看创建的service

五、port

1.port

2.nodePort

3.targetPort

4.containerPort


一、deployment.yaml文件

apiVersion: extensions/v1beta1    接口版本
kind: Deployment                  接口类型
metadata:
  name: cango-demo                Deployment名称
  namespace: cango-prd            命名空间
  labels:
    app: cango-demo               标签
spec:
  replicas: 3
  strategy:
    rollingUpdate:               由于replicas为3,则整个升级,pod个数在2-4个之间
      maxSurge: 1                滚动升级时会先启动1个pod
      maxUnavailable: 1          滚动升级时允许的最大Unavailable的pod个数
  template:         
    metadata:
      labels:
        app: cango-demo          模板名称必填
    sepc:                        定义容器模板,该模板可以包含多个容器
      containers:                                                                   
        - name: cango-demo        镜像名称
          image: swr.cn-east-2.myhuaweicloud.com/cango-prd/cango-demo:0.0.1-SNAPSHOT
                                  镜像地址
          command: [ "/bin/sh","-c","cat /etc/config/path/to/special-key" ]     启动命令
          args:                                                                 启动参数
            - '-storage.local.retention=$(STORAGE_RETENTION)'
            - '-storage.local.memory-chunks=$(STORAGE_MEMORY_CHUNKS)'
            - '-config.file=/etc/prometheus/prometheus.yml'
            - '-alertmanager.url=http://alertmanager:9093/alertmanager'
            - '-web.external-url=$(EXTERNAL_URL)'
     如果command和args均没有写,那么用Docker默认的配置。
     如果command写了,但args没有写,那么Docker默认的配置会被忽略而且仅仅执行.yaml文件的command(不带任何参数的)。
     如果command没写,但args写了,那么Docker默认配置的ENTRYPOINT的命令行会被执行,但是调用的参数是.yaml中的args。
     如果command和args都写了,那么Docker默认的配置被忽略,使用.yaml的配置。
          imagePullPolicy: IfNotPresent  #如果不存在则拉取
          livenessProbe:       #表示container是否处于live状态。如果LivenessProbe失败,LivenessProbe将会通知kubelet对应的container不健康了。随后kubelet将kill掉container,并根据RestarPolicy进行进一步的操作。默认情况下LivenessProbe在第一次检测之前初始化值为Success,如果container没有提供LivenessProbe,则也认为是Success;
            httpGet:
              path: /health          如果没有心跳检测接口就为/
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 60  启动后延时多久开始运行检测
            timeoutSeconds: 5
            successThreshold: 1
            failureThreshold: 5
          readinessProbe:
            httpGet:
              path: /health          如果没有心跳检测接口就为/
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 30  启动后延时多久开始运行检测
            timeoutSeconds: 5
            successThreshold: 1
            failureThreshold: 5
          resources:                 CPU内存限制
            requests:
              cpu: 2
              memory: 2048Mi
            limits:
              cpu: 2
              memory: 2048Mi
          env:                      通过环境变量的方式,直接传递pod=自定义Linux OS环境变量
            - name: LOCAL_KEY       本地Key
              value: value
            - name: CONFIG_MAP_KEY  局策略可使用configMap的配置Key,
              valueFrom:
                configMapKeyRef:
                  name: special-config    configmap中找到name为special-config
                  key: special.type       找到name为special-config里data下的key
          ports:
            - name: http
              containerPort: 8080         对service暴露端口
          volumeMounts:                   挂载volumes中定义的磁盘
          - name: log-cache
            mount: /tmp/log
          - name: sdb                    普通用法,该卷跟随容器销毁,挂载一个目录
            mountPath: /data/media    
          - name: nfs-client-root        直接挂载硬盘方法,如挂载下面的nfs目录到/mnt/nfs
            mountPath: /mnt/nfs
          - name: example-volume-config  高级用法第1种,将ConfigMap的log-script,backup-script分别挂载到/etc/config目录下的一个相对路径path/to/...下,如果存在同名文件,直接覆盖。
            mountPath: /etc/config       
          - name: rbd-pvc                高级用法第2中,挂载PVC(PresistentVolumeClaim)
 
  使用volume将ConfigMap作为文件或目录直接挂载,其中每一个key-value键值对都会生成一个文件,key为文件名,value为内容,
  volumes:                                定义磁盘给上面volumeMounts挂载
  - name: log-cache
    emptyDir: {}
  - name: sdb                             挂载宿主机上面的目录
    hostPath:
      path: /any/path/it/will/be/replaced
  - name: example-volume-config           供ConfigMap文件内容到指定路径使用
    configMap:
 
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值