有些业务场景需要我们变更pod里面的一些tcp内核参数等。我们可以使用psp控制集群pod的相关内核参数,也可以使用pod级别的安全上下文。
k8s提供了三种配置安全上下文的方法:
容器级别的安全上下文配置,仅仅影响指定容器。 pod级别的安全上下文,应用影响到pod所有的容器及卷。 pod安全策略,应用到集群内所有的pod及卷。简称PSP PodSecurityPolicy (PSP)类型的对象能够控制,是否可以向 Pod 发送请求,该 Pod 能够影响被应用到 Pod 和容器的 SecurityContext。 简单的例子:
通过pod的安全上下文修改pod内部被动tcp发起端口范围
apiVersion: v1
kind: Pod
metadata:
name: liveness-exe
# annotations:
# security.alpha.kubernetes.io/sysctls: net.ipv4.ip_local_port_range= 1024 65535
labels:
test: liveness-exec
spec:
securityContext:
sysctls:
- name: net.ipv4.ip_local_port_range
value: "1024 65535"
containers:
- name: liveness-demo
image: busybox
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 600; rm -rf /tmp/healthy; sleep 600
livenessProbe:
exec:
command:
- test
- -e
- /tmp/healthy
initialDelaySeconds: 15
timeoutSeconds: 1
什么是 Pod 安全策略?
Pod 安全策略 是集群级别的资源,它能够控制 Pod 运行的行为,以及它具有访问什么的能力。 https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
https://kubernetes.io/zh/docs/concepts/policy/resource-quotas/