做钓鱼网站视频教程,做头像网站静态,单页网站建设服务好的商家,wordpress主题公众号Author#xff1a;rab 前言
为了 K8s 集群安全#xff0c;默认情况下 Dashboard 以 Token 的形式登录的#xff0c;那如果我们想以用户名/密码的方式登录该怎么操作呢#xff1f;其实只需要我们创建用户并进行 ClusterRoleBinding 绑定即可#xff0c;接下来是具体的操作…
Authorrab 前言
为了 K8s 集群安全默认情况下 Dashboard 以 Token 的形式登录的那如果我们想以用户名/密码的方式登录该怎么操作呢其实只需要我们创建用户并进行 ClusterRoleBinding 绑定即可接下来是具体的操作流程。
1、创建用户名/密码
cat EOF | sudo tee /etc/kubernetes/pki/basic_auth_file
admin,zhurs123,1
EOF# 说明
# 用户名admin
# 密码zhurs123
# 用户ID12、修改 kube-apiserver 配置文件
# 先提前做个备份
cp /etc/kubernetes/manifests/kube-apiserver.yaml /etc/kubernetes/manifests/kube-apiserver.yaml.back# 修改配置文件
vim /etc/kubernetes/manifests/kube-apiserver.yaml...
...
spec:containers:- command:- kube-apiserver- --advertise-address192.168.56.160- --allow-privilegedtrue- --authorization-modeNode,RBAC- --client-ca-file/etc/kubernetes/pki/ca.crt- --enable-admission-pluginsNodeRestriction- --enable-bootstrap-token-authtrue- --etcd-cafile/etc/kubernetes/pki/etcd/ca.crt- --etcd-certfile/etc/kubernetes/pki/apiserver-etcd-client.crt- --etcd-keyfile/etc/kubernetes/pki/apiserver-etcd-client.key- --etcd-servershttps://127.0.0.1:2379- --kubelet-client-certificate/etc/kubernetes/pki/apiserver-kubelet-client.crt- --kubelet-client-key/etc/kubernetes/pki/apiserver-kubelet-client.key- --kubelet-preferred-address-typesInternalIP,ExternalIP,Hostname- --proxy-client-cert-file/etc/kubernetes/pki/front-proxy-client.crt- --proxy-client-key-file/etc/kubernetes/pki/front-proxy-client.key- --requestheader-allowed-namesfront-proxy-client- --requestheader-client-ca-file/etc/kubernetes/pki/front-proxy-ca.crt- --requestheader-extra-headers-prefixX-Remote-Extra-- --requestheader-group-headersX-Remote-Group- --requestheader-username-headersX-Remote-User- --secure-port6443- --service-account-issuerhttps://kubernetes.default.svc.cluster.local- --service-account-key-file/etc/kubernetes/pki/sa.pub- --service-account-signing-key-file/etc/kubernetes/pki/sa.key- --service-cluster-ip-range10.96.0.0/12- --tls-cert-file/etc/kubernetes/pki/apiserver.crt- --tls-private-key-file/etc/kubernetes/pki/apiserver.key- --basic-auth-file/etc/kubernetes/pki/basic_auth_file # 新增
...
...:wq 保存退出后 kube-apiserver 会自动重启大约 10s 左右无需 kubectl apply ...。
3、查看 kube-apiserver 是否重启
kubectl get pod -n kube-system4、集群角色绑定
kubectl create clusterrolebinding DashBoardLogin --clusterrolecluster-admin --useradmin# DashBoardLogin自定义集群角色绑定name
# 将admin用户绑定到集群角色cluster-admin
# cluster-admin是一个内置的ClusterRole集群角色它具有最高级别的权限
# cluster-admin允许持有该角色的用户或服务账户对整个Kubernetes集群进行广泛的控制具体来说cluster-admin ClusterRole 具有以下特征和权限 全局权限cluster-admin 具有对整个集群的权限而不仅仅限于某个命名空间。这意味着拥有 cluster-admin 角色的用户可以管理整个集群的资源包括节点、命名空间、服务、Pod 等。 权限广泛cluster-admin 具有广泛的权限包括创建、删除和修改各种资源以及查看集群中的所有资源的权限。这包括对 ConfigMaps、Secrets、Deployments、Services 等的完全控制权。 角色的高度特权由于 cluster-admin 角色的特权级别非常高因此授予它的用户或服务账户将具有执行集群中任何操作的能力包括破坏性操作。因此应小心授予 cluster-admin 权限确保只授予受信任的用户或服务账户。
通常情况下cluster-admin 角色应该被保留用于紧急情况、集群管理和维护操作。该权限不应该随意授予普通用户以防止误操作或滥用权限。对于普通应用程序和开发人员通常会创建更严格的 RBAC 角色以限制其对资源的访问权限从而提高集群的安全性。
5、查看集群角色绑定情况
kubectl get clusterrolebinding DashBoardLogin6、修改 kubernetes-dashboard 认证方式
# 先提前做个备份
cp /opt/yaml/dashboard-2.7.0/aio/deploy/recommended.yaml /opt/yaml/dashboard-2.7.0/aio/deploy/recommended.yaml.back# 修改配置文件
vim /opt/yaml/dashboard-2.7.0/aio/deploy/recommended.yaml...
args:- --auto-generate-certificates- --namespacekubernetes-dashboard- --token-ttl21600- --authentication-modebasic
...7、启动 Dashboard
kubectl apply -f recommended.yaml# 注意你的recommended.yaml文件路径我的就在当前目录下8、Dashboard 访问验证 使用用户名/密码的方式看是否可访问。 admin/zhurs123 但是我们一般不建议这样操作大家在测试环境玩玩就行
—END