gpt4 book ai didi

kubernetes - 将Kubernetes用户链接到Unix用户

转载 作者:行者123 更新时间:2023-12-02 11:44:29 25 4
gpt4 key购买 nike

我正在使用RBAC来限制用户john正常工作并仅在其命名空间test-namespace中创建资源。

这是我所做的:

1)为用户生成证书并创建set-context

kubectl config set-credentials john --client-certificate=/home/john/.certs/employee.crt  --client-key=/home/john/.certs/employee.key
kubectl config set-context john-context --cluster=minikube --namespace=test-namespace --user=john

2)创建一个角色来管理命名空间 test-namespace中的部署。
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
namespace: test-namespace
name: deployment-authority
rules:
- apiGroups: ["", "extensions", "apps"]
resources: ["deployments", "replicasets", "pods"]
verbs: ["get", "create", "update", "patch", "delete"]

3)创建一个RoleBinding。
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: deployment-authority-binding-john
namespace: test-namespace
subjects:
- kind: User
name: john
apiGroup: ""
roleRef:
kind: Role
name: deployment-authority
apiGroup: ""

现在以上所有工作都可以了,我可以运行 kubectl --context=john-context run --image busybox busybox命令了,没有任何问题。

现在,我在Kubernetes Master节点上还有一个Unix用户,其用户名为john。我的目的是确保该用户登录后,他(约翰)可以在其上下文 john-context中运行允许其使用的命令。我无法将UNIX用户链接到Kubernetes用户。

就像是 :
john@kubernet:/$ id
uid=1002(john) gid=1002(john) groups=1002(john)

john@kubernet:/$ kubectl get po -n test-namespace
NAME READY STATUS RESTARTS AGE
grafana-67c6585fbd-tlr4n 1/1 Running 2 23h

但是,如果我切换到Unix计算机上的另一个用户,那么他/她应该不能看到任何东西或在 namespace test-namespace中执行任何操作。
su - tom
tom@kubernet:/$ id
uid=1004(tom) gid=1004(tom) groups=1004(tom)
john@kubernet:/$ kubectl get po -n test-namespace
You are not allowed to view resources in this namespace

任何建议将不胜感激。

最佳答案

您可以通过用户主目录中的~/.kube/config文件进行管理。用/home/john/.kube/config说,您将得到以下内容:

apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0xxxxxxxxo=
server: https://172.1.1.1:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
namespace: default
user: john
name: john@kubernetes
current-context: john@kubernetes
kind: Config
preferences: {}
users:
- name: john
user:
client-certificate-data: LS0txxxxo=
client-key-data: LS0xxxxx==

然后,请确保该文件仅具有 600权限。

关于kubernetes - 将Kubernetes用户链接到Unix用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52562445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com