K8S中若要挂载其他命名空间中的 Secret操作方法
在Kubernetes(k8s)里,若要挂载其他命名空间中的Secret,你可以通过创建一个 Secret 的 ServiceAccount 和 RoleBinding 来实现对其他命名空间 Secret 的访问,接着在 Pod 中挂载这个 Secret。
下面是详细的步骤和示例代码:
步骤
- 创建
ServiceAccount:在要挂载Secret的命名空间里创建一个ServiceAccount。 - 创建
Role与RoleBinding:在包含Secret的命名空间创建一个Role以及RoleBinding,以此赋予ServiceAccount访问Secret的权限。 - 在
Pod中使用ServiceAccount并挂载Secret:在Pod定义里运用ServiceAccount,并且挂载Secret。
示例代码
下面是一系列的 YAML 文件,用来实现上述步骤。
1. 创建 ServiceAccount
在要挂载 Secret 的命名空间(假设为 target-namespace)创建 ServiceAccount:
apiVersion: v1 kind: ServiceAccount metadata: name: secret-reader namespace: target-namespace
2. 创建 Role 和 RoleBinding
在包含 Secret 的命名空间(假设为 source-namespace)创建 Role 和 RoleBinding:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: secret-reader-role namespace: source-namespace rules: - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: secret-reader-rolebinding namespace: source-namespace subjects: - kind: ServiceAccount name: secret-reader namespace: target-namespace roleRef: kind: Role name: secret-reader-role apiGroup: rbac.authorization.k8s.io
3. 在 Pod 中使用 ServiceAccount 并挂载 Secret
在 target-namespace 里创建一个 Pod,使用 ServiceAccount 并挂载 Secret:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
namespace: target-namespace
spec:
serviceAccountName: secret-reader
containers:
- name: my-container
image: nginx
volumeMounts:
- name: secret-volume
mountPath: "/etc/secret"
readOnly: true
volumes:
- name: secret-volume
secret:
secretName: my-secret
namespace: source-namespace解释
ServiceAccount:在target-namespace创建的secret-readerServiceAccount用于给Pod授予访问权限。Role和RoleBinding:在source-namespace创建的Role和RoleBinding赋予secret-readerServiceAccount访问Secret的权限。Pod:在target-namespace创建的Pod使用secret-readerServiceAccount,并且挂载source-namespace中的my-secretSecret。
操作步骤
- 把上述 YAML 文件保存为不同的文件,例如
serviceaccount.yaml、role.yaml和pod.yaml。 - 依次执行以下命令:
kubectl apply -f serviceaccount.yaml kubectl apply -f role.yaml kubectl apply -f pod.yaml
这样,Pod 就能成功挂载其他命名空间中的 Secret 了。
到此这篇关于K8S中若要挂载其他命名空间中的 Secret的文章就介绍到这了,更多相关K8S命名空间 Secret内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
阿里云kubernetes查找镜像中jar包的方法(docker查看镜像中的jar)
这篇文章主要给大家介绍了关于阿里云kubernetes查找镜像中jar包的方法,也就是在docker查看镜像中的jar,文中通过图文介绍的非常详细,需要的朋友可以参考下2022-09-09
Kubernetes有状态应用管理StatefulSet使用详解
这篇文章主要为大家介绍了Kubernetes有状态应用管理StatefulSet使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-11-11
IoT边缘集群Kubernetes Events告警通知实现示例
这篇文章主要为大家介绍了IoT边缘集群Kubernetes Events告警通知实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-02-02


最新评论