温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

K8s中配置文件模板含义是什么

发布时间:2021-12-08 09:17:43 来源:亿速云 阅读:243 作者:小新 栏目:云计算

这篇文章给大家分享的是有关K8s中配置文件模板含义是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、deployment

Deployment为Pod和Replica Set下一代Replication Controller)提供声明式更新

1,配置示例#

apiVersion: apps/v1        # 1.9.0 之前的版本使用 apps/v1beta2,可通过命令 kubectl api-versions 查看 kind: Deployment           #指定创建资源的角色/类型 metadata:                  #资源的元数据/属性   name: nginx-deployment       #资源的名字,在同一个namespace中必须唯一   namespace:  xxxx             #命名空间   labels:      app: demo                  #标签 spec:   replicas: 3         #副本数量3   strategy:     rollingUpdate:   ##由于replicas为3,则整个升级,pod个数在2-4个之间       maxSurge: 1      #滚动升级时会先启动1个pod       maxUnavailable: 1 #滚动升级时允许的最大Unavailable的pod个数   selector:             #定义标签选择器,部署需要管理的pod(带有该标签的的会被管理)需在pod 模板中定义     matchLabels:       app: web-server   template:      #这里Pod的定义     metadata:       labels:    #Pod的label         app: web-server     spec:        # 模板的规范         containers:         - name: nginx      #容器的名字           image: nginx:1.12.1  #容器的镜像地址          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           # IfNotPresent :默认值,本地有则使用本地镜像,不拉取,如果不存在则拉取         # Always:  总是拉取         # Never:  只使用本地镜像,从不拉取           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:           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:       name: example-volume-config  #ConfigMap中名称       items:       - key: log-script           #ConfigMap中的Key         path: path/to/log-script  #指定目录下的一个相对路径path/to/log-script       - key: backup-script        #ConfigMap中的Key         path: path/to/backup-script  #指定目录下的一个相对路径path/to/backup-script   - name: nfs-client-root         #供挂载NFS存储类型     nfs:       server: 10.42.0.55          #NFS服务器地址       path: /opt/public           #showmount -e 看一下路径   - name: rbd-pvc                 #挂载PVC磁盘     persistentVolumeClaim:       claimName: rbd-pvc1         #挂载已经申请的pvc磁盘

二、Service YAML

apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中  kind: Service # 指定创建资源的角色/类型  metadata: # 资源的元数据/属性   name: demo # 资源的名字,在同一个namespace中必须唯一   namespace: default # 部署在哪个namespace中   labels: # 设定资源的标签     app: demo spec: # 资源规范字段   type: ClusterIP # ClusterIP 类型   ports:     - port: 8080 # service 端口       targetPort: http # 容器暴露的端口       protocol: TCP # 协议       name: http # 端口名称   selector: # 选择器     app: demo

感谢各位的阅读!关于“K8s中配置文件模板含义是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

k8s
AI