我是靠谱客的博主 能干白昼,最近开发中收集的这篇文章主要介绍【博客409】 k8s使用 PodPreset 将信息注入 Pods,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

内容: k8s使用 PodPreset 将信息注入 Pods

场景与功能:

PodPreset:
Pod Preset是API资源,在Pod创建时可以使用它将额外的运行时需求注入到里面。
可以使用标签选择器指定Pod Preset用户相应的Pod。使用PodPreset允许pod模板
不必为每个pod显式的设置信息。这样pod模板的作者不必知道该服务的所有的详细信息。
我们可以使用标签选择器来指定某个或某些 Pod,来将 PodPreset 预设信息应用上去。
使用 PodPreset 的好处就是我们可以将一些常用 Pod 预设信息配置为模板,这样就不
需要显式为每个 Pod 提供所有信息,简化 Pod 初始化配置,还能起到配置统一的效果。

启动podpreset:

使用 Pod Preset,必须确保以下条件成立:

1、已启用 api 类型 settings.k8s.io/v1alpha1/podpreset

2、已启用准入控制器 PodPreset

3、已定义 pod preset

注意:
K8s 默认不开启 PodPreset 支持的,其 API 类型为 settings.k8s.io/v1alpha1,如不
确认集群是否已开启 PodPreset 支持,可以通过 kubectl api-versions 命令查看是否
存在该类型,或者 kubectl get podpreset 命令查看,如果没开启会提示:
 error: the server doesn't have a resource type "podpreset" 

启用 PodPreset,可以通过 K8s ApiServer 增加:
 --runtime-config=settings.k8s.io/v1alpha1=true 配置即可

禁用podpreset:

不希望 pod 被 pod preset 所改动,这时,可以在 pod spec 中添加注解:
podpreset.admission.kubernetes.io/exclude: “true” 

实例:

##pod示例:

apiVersion: v1
kind: Pod
metadata:
  name: website
  labels:
    app: website
    role: frontend
spec:
  containers:
    - name: website
      image: ecorp/website
      ports:
        - containerPort: 80

##podpreset示例:

kind: PodPreset
apiVersion: settings.k8s.io/v1alpha1
metadata:
  name: allow-database
  namespace: myns
spec:
  selector:
    matchLabels:
      role: frontend
  env:
    - name: DB_PORT
      value: "6379"
  volumeMounts:
    - mountPath: /cache
      name: cache-volume
  volumes:
    - name: cache-volume
      emptyDir: {}

##生效后的pod:

apiVersion: v1
kind: Pod
metadata:
  name: website
  labels:
    app: website
    role: frontend
  annotations:
    podpreset.admission.kubernetes.io/allow-database: "resource version"
spec:
  containers:
    - name: website
      image: ecorp/website
      volumeMounts:
        - mountPath: /cache
          name: cache-volume
      ports:
        - containerPort: 80
      env:
        - name: DB_PORT
          value: "6379"
  volumes:
    - name: cache-volume
      emptyDir: {}

最后

以上就是能干白昼为你收集整理的【博客409】 k8s使用 PodPreset 将信息注入 Pods的全部内容,希望文章能够帮你解决【博客409】 k8s使用 PodPreset 将信息注入 Pods所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部