1. 程式人生 > 其它 >|NO.Z.00232|——————————|^^ 失敗 ^^|——|KuberNetes&細粒度許可權控制.V16|------------------------------------------------|准入控制.v02|PodPreset實驗|

|NO.Z.00232|——————————|^^ 失敗 ^^|——|KuberNetes&細粒度許可權控制.V16|------------------------------------------------|准入控制.v02|PodPreset實驗|



[CloudNative:KuberNetes&細粒度許可權控制.V16]                                                    [Applications.KuberNetes] [|DevOps|k8s|細粒度許可權控制|准入控制|kubernetes服務質量QoS|使用PodPreset預配置容器時區|]








一、QoS
### --- QoS

~~~     QoS:Quality of Service,服務質量。
~~~     Guaranteed:k8s的最高的服務質量,也就是CPU記憶體的Request和Limit的值一樣。
~~~     Burstable:CPU記憶體的request有配置,但是值不一樣
~~~     BestEffort:沒有配置Request和Limit
~~~     OOM,先刪除服務質量為BestEffort,然後在刪除Burstable,Guaranteed最後被刪除。
~~~     16核—request=limit,1 一個16核的宿主機只能執行16個容器。
~~~     Node上面的CPU,利用率其實很低。100m=100m
~~~     3G 3.5G
二、PodPreset(實驗失敗,待實驗
### --- PodPreset(實驗失敗,待實驗)

~~~     # 請注意: k8s 1.20版本已經刪除PodPreset功能,低於1.20版本正常使用
~~~     PodPreset:Pod的一些預配置。比如新增一些變數、掛載卷、配置容器的時間、字符集等。
~~~     開啟PodPreset的方法:https://kubernetes.io/docs/concepts/workloads/pods/podpreset/
~~~     使用PodPreset的文件:https://kubernetes.io/docs/tasks/inject-data-application/podpreset/
三、配置podPreset
### --- 配置PodPreset:(所有master節點)

[root@k8s-master01 ~]# vim /usr/lib/systemd/system/kube-apiserver.service
      --enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota,PodPreset \
# 這行末尾新增引數: ,PodPreset      
      --feature-gates=EphemeralContainers=true \                // 此行下新增引數
      --runtime-config=settings.k8s.io/v1alpha1=true \          // 新增此行內容
      --requestheader-extra-headers-prefix=X-Remote-Extra-  \   // 此行上新增引數
[root@k8s-master01 ~]# systemctl daemon-reload      
[root@k8s-master01 ~]# systemctl restart kube-apiserver      
四、是有namespace隔離。同一個Volume不能掛載到不同的路徑
### --- 是有namespace隔離。同一個Volume不能掛載到不同的路徑
~~~     # 忽略預配置:podpreset.admission.kubernetes.io/exclude: "true"

apiVersion: settings.k8s.io/v1alpha1
kind: PodPreset
metadata:
  name: time
spec:
#  selector:
#    matchLabels:
#      role: frontend
  env:
    - name: LANG
      value: "C.UTF-8"
  volumeMounts:
    - mountPath: /usr/share/zoneinfo/Asia/Shanghai
      name: tz-config
      readOnly: true
    - mountPath: /etc/localtime
      name: tz-config2
      readOnly: true
    - mountPath: /etc/timezone
      name: timezone
      readOnly: true
  volumes:
    - name: tz-config2
      hostPath:
       path: /usr/share/zoneinfo/Asia/Shanghai
    - name: tz-config
      hostPath:
       path: /usr/share/zoneinfo/Asia/Shanghai
    - name: timezone
      hostPath:
       path: /etc/timezone








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)