zoukankan      html  css  js  c++  java
  • 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 默认都会被注入该模板。
  • 相关阅读:
    jquery总结01-基本概念和选择器
    git学习笔记总结
    git学习笔记12-标签管理-版本
    vue 图片下载到本地,图片保存到本地
    Failed to mount component: template or render function not defined.
    javascript 错误监控
    javascript 跨域 的几种方法
    解决跨域脚本攻击 XSS
    标准时间转YYYY-MMM-DD
    javascript时间戳和日期字符串相互转换
  • 原文地址:https://www.cnblogs.com/Applogize/p/14990675.html
Copyright © 2011-2022 走看看