Kubernetes实战之PodPreset
本文主要讲解如何在kubernetes使用pod preset。
可能在某些情况下,您希望 Pod 不会被任何 Pod Preset 突变所改变。在这些情况下,您可以在 Pod 的 Pod Spec 中添加注释: podpreset.admission.kubernetes.io/exclude:“true”。
为了在集群中使用Pod Preset:
- 在apiserver参数配置preset相关参数,需要修改/etc/kubernetes/manifests/kube-apiserver.yaml文件
kube-apiserver.yaml 1
2- --enable-admission-plugins=NodeRestriction,PodPreset - --runtime-config=settings.k8s.io/v1alpha1=true
- 在需要配置的namespace中使用PodPreset创建PodPreset资源。
localtime.yaml 1
2
3
4
5
6
7
8
9
10
11
12
13
14apiVersion: settings.k8s.io/v1alpha1 kind: PodPreset metadata: name: allow-tz-env namespace: monitoring spec: volumeMounts: - mountPath: /etc/localtime name: localtime-config readOnly: true volumes: - name: localtime-config hostPath: path: /etc/localtime
基于之前的lxcfs需要做资源隔离问题这里使用preset解决就很方便了,我们需要使用preset设置一下lxcfs挂载目录即可。
1 |
|
下面我们创建并查看一下我们创建的preset
1
2
kubectl create -f allow-lxcfs.yaml
kubectl get podpresets.settings.k8s.io
1
kubectl run lxcfs-tomcat --image=tomcat:7 --limits='cpu=200m,memory=512Mi'
到这里我们的preset+lxcfs已经完成配置了。