Linkerd 2.10 系列
- 快速上手 Linkerd v2.10 Service Mesh(服务网格)
- 腾讯云 K8S 集群实战 Service Mesh—Linkerd2 & Traefik2 部署 emojivoto 应用
- 详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代
- Linkerd 2.10—将您的服务添加到 Linkerd
- Linkerd 2.10—自动化的金丝雀发布
- Linkerd 2.10—自动轮换控制平面 TLS 与 Webhook TLS 凭证
- Linkerd 2.10—如何配置外部 Prometheus 实例
- Linkerd 2.10—配置代理并发
- Linkerd 2.10—配置重试
- Linkerd 2.10—配置超时
- Linkerd 2.10—控制平面调试端点
- Linkerd 2.10—使用 Kustomize 自定义 Linkerd 的配置
- Linkerd 2.10—使用 Linkerd 进行分布式跟踪
- Linkerd 2.10—调试 502s
- Linkerd 2.10—使用每个路由指标调试 HTTP 应用程序
- Linkerd 2.10—使用请求跟踪调试 gRPC 应用程序
- Linkerd 2.10—导出指标
- Linkerd 2.10—暴露 Dashboard
- Linkerd 2.10—生成您自己的 mTLS 根证书
- Linkerd 2.10—获取每条路由指标
- Linkerd 2.10—混沌工程之注入故障
- Linkerd 2.10—优雅的 Pod 关闭
- Linkerd 2.10—Ingress 流量
Linkerd 2.10 中文手册持续修正更新中:
Linkerd 控制平面带有自己的最低特权
Pod Security Policy
和相关的 RBAC 资源。
仅当启用 PodSecurityPolicy admission controller 时,才会强制执行此 Pod 安全策略。
要查看控制平面的 Pod 安全策略的定义,请运行:
kubectl describe psp -l linkerd.io/control-plane-ns=linkerd
调整上述标签的值以匹配您的控制平面的命名空间。
请注意,为了最小化攻击面,除了 NET_ADMIN 和 NET_RAW 功能外,
所有 Linux 功能都从控制平面的 Pod 安全策略中删除。
这些功能为 proxy-init init 容器提供了运行时特权
来重写 pod 的 iptable。
请注意,将这些功能添加到 Pod 安全策略不会使容器成为特权容器。
控制平面的 Pod 安全策略使用 allowPrivilegeEscalation: false 策略防止容器
privileged。
要了解 NET_ADMIN 和 NET_RAW 功能的完整含义,请参阅 Linux 功能
manual。
如果您的环境不允许运行具有升级 Linux 功能的容器,
则可以使用不需要 NET_ADMIN 和 NET_RAW 功能
的 CNI plugin 安装 Linkerd。
Linkerd 没有为数据平面提供任何默认的 Pod 安全策略, 因为这些策略会根据您的应用程序的安全要求而有所不同。 Linkerd 代理 sidecar 容器的安全上下文要求与 控制平面的 Pod 安全策略中定义的要求非常相似。
例如,以下 Pod 安全策略和 RBAC 将与注入的 emojivoto demo 应用程序一起使用:
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: linkerd-emojivoto-data-plane
spec:
allowPrivilegeEscalation: false
fsGroup:
ranges:
- max: 65535
min: 10001
rule: MustRunAs
readOnlyRootFilesystem: true
allowedCapabilities:
- NET_ADMIN
- NET_RAW
- NET_BIND_SERVICE
requiredDropCapabilities:
- ALL
runAsUser:
rule: RunAsAny
seLinux:
rule: RunAsAny
supplementalGroups:
ranges:
- max: 65535
min: 10001
rule: MustRunAs
volumes:
- configMap
- emptyDir
- projected
- secret
- downwardAPI
- persistentVolumeClaim
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: emojivoto-psp
namespace: emojivoto
rules:
- apiGroups: ['policy','extensions']
resources: ['podsecuritypolicies']
verbs: ['use']
resourceNames: ['linkerd-emojivoto-data-plane']
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: emojivoto-psp
namespace: emojivoto
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: emojivoto-psp
subjects:
- kind: ServiceAccount
name: default
namespace: emojivoto
- kind: ServiceAccount
name: emoji
namespace: emojivoto
- kind: ServiceAccount
name: voting
namespace: emojivoto
- kind: ServiceAccount
name: web
namespace: emojivoto
请注意,Linkerd 代理在没有 Linkerd CNI 的情况下运行时
只需要 NET_ADMIN 和 NET_RAW 功能,并且它使用 UID 2102 运行。
我是为少
微信:uuhells123
公众号:黑客下午茶
加我微信(互相学习交流),关注公众号(获取更多学习资料~)