• PodPreset


    启用 PodPreset

    1.要启用PodPreset功能,需要确保你使用的是 kubernetes 1.8版本以上,然后需要在准入控制中加入PodPreset,另外为了定义 PodPreset 对象,还需要其中 PodPreset 的 API 版本,在 APIServer 启动参数中添加如下配置,kubeadm在这个路劲下/etc/kubernetes/manifests/:

    - --enable-admission-plugins=NodeRestriction,PodPreset
    - --runtime-config=settings.k8s.io/v1alpha1=true
    ### 要重启
    

    2.我们经常有一个需求就是需要同步 Pod 和宿主机的时间,一般情况下,我们是通过挂载宿主机的 localtime 来完成的,如下 Pod:(time-demo.yaml)

    [root@master01 ~]# cat 2.yaml 
    apiVersion: v1 
    kind: Pod
    metadata:
      name: demo
      labels:
        app: time
    spec:
      containers:
      - name: demo
        image: nginx
        ports:
        - containerPort: 80
    [root@master01 ~]# kubectl exec demo date
    Fri Jul  9 07:01:58 UTC 2021
    [root@master01 ~]# date
    Fri Jul  9 15:02:02 CST 2021
    

    3.定义PodPreset 来预设模板,定义一个如下所示的 PodPreset 资源对象:(time-preset.yaml)

    [root@master01 ~]# cat time-preset.yaml 
    apiVersion: settings.k8s.io/v1alpha1
    kind: PodPreset
    metadata:
      name: time-preset
      namespace: monitoring
    spec:
      selector:
        matchLabels:
      volumeMounts:
      - name: localtime
        mountPath: /etc/localtime
      volumes:
      - name: localtime
        hostPath:
          path: /etc/localtime
    [root@master01 ~]#   kubectl get pods -l app=time -n monitoring 
    NAME        READY   STATUS    RESTARTS   AGE
    time-demo   1/1     Running   0          68m
    [root@master01 ~]#   kubectl exec time-demo -n monitoring  date
    Fri Jul  9 15:05:01 CST 2021
    

    4.定义pod,进行测试

    [root@master01 ~]# cat 1.yaml 
    apiVersion: v1
    kind: Pod
    metadata:
      name: time-demo
      namespace: monitoring 
      labels:
        app: time
    spec:
      containers:
      - name: time-demo
        image: nginx
        ports:
        - containerPort: 80
    [root@master01 ~]# kubectl exec -n monitoring time-demo date
    Fri Jul  9 15:07:25 CST 2021
    [root@master01 ~]# date
    Fri Jul  9 15:07:28 CST 2021
    
    1. Pod 被自动注入了 PodPreset 声明的模板,而且该命名空间下面的所有 Pod 默认都会被注入该模板。
  • 相关阅读:
    关于OC中.m文件下实现私有变量的方法,在.h文件下实现公有变量的方法
    mac中安装homebrew
    ios架构
    github命令记录
    Unity 游戏框架搭建 MonoBehaviour单例的模板
    Unity 游戏框架搭建 单例的模板
    unity 单列
    简单工厂与工厂
    NGUI动态播放视频
    在一个GameObject上进行多个AudioSource的控制
  • 原文地址:https://www.cnblogs.com/Applogize/p/14990675.html
Copyright © 2020-2023  润新知