使用initcontainer修改k8s 集群pod容器的内核参数
使用initcontainer 修改pod 中容器的内核参数在pod 中使用的案例apiVersion: v1kind: Podmetadata:name: test-sysctl-initnamespace: defaultspec:containers:- image: nginximagePullPolicy: Alwaysname: nginxports:- containerPort:
·
使用initcontainer 修改pod 中容器的内核参数
- 在pod 中使用的案例
apiVersion: v1
kind: Pod
metadata:
name: test-sysctl-init
namespace: default
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
ports:
- containerPort: 80
protocol: TCP
initContainers:
- image: busybox
command:
- sh
- -c
- echo 65535 > /proc/sys/net/core/somaxconn
imagePullPolicy: Always
name: setsysctl
securityContext:
privileged: true
- 在无状态服务中配置的案例
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: '2'
creationTimestamp: '2021-02-25T07:26:06Z'
generation: 2
labels:
app: nginx
name: nginx
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: nginx
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: nginx
spec:
containers:
- env:
- name: PKG_RELEASE
value: 2~buster
image: 'nginx:stable'
imagePullPolicy: IfNotPresent
name: nginx
ports:
- containerPort: 80
protocol: TCP
resources:
requests:
cpu: 100m
memory: 200Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/localtime
name: volume-localtime
dnsPolicy: ClusterFirst
initContainers:
- command:
- /bin/sh
- '-c'
- |
mount -o remount rw /proc/sys
sysctl -w net.core.somaxconn=65535
sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sysctl -w fs.file-max=1048576
sysctl -w fs.inotify.max_user_instances=16384
sysctl -w fs.inotify.max_user_watches=524288
sysctl -w fs.inotify.max_queued_events=16384
image: 'busybox:latest'
imagePullPolicy: IfNotPresent
name: init-sysctl
resources: {}
securityContext:
capabilities:
add:
- SYS_ADMIN
drop:
- ALL
procMount: Default
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- hostPath:
path: /etc/localtime
type: ''
name: volume-localtime
- 验证修改参数是否生效
登录到创建好的pod 内执行 cat /proc/sys/net/core/somaxconn 查看参数是否与设置中的数值一致(默认值为128)。
更多推荐
已为社区贡献13条内容
所有评论(0)