在AWS EKS上部署Pod时,可以通过为Pod定义一个服务帐户(Service Account)来分配所需的IAM角色。但是,有时候Pod被错误地分配为节点角色(Node Role),这可能导致一些权限问题。以下代码示例演示如何将Pod正确地指定为服务帐户,而不是节点角色:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: my-service-account-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
apiVersion: v1
kind: ServiceAccount
metadata:
name: my-service-account
namespace: default
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: my-service-account-role
subjects:
- kind: ServiceAccount
name: my-service-account
namespace: default
roleRef:
kind: Role
name: my-service-account-role
apiGroup: rbac.authorization.k8s.io
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
serviceAccountName: my-service-account
containers:
- name: my-container
image: my-image
ports:
- containerPort: 80
通过这样的方式创建Pod,它将使用指定的服务帐户角色而不是节点角色。