Kubernetes(K8s) 安装 bitnami/kubectl 管理集群

2025-05-08 15:09

k8s 如果只提供图形化管理界面,可以安装 bitnami/kubectl 用于执行命令。

kubectl-commands 官方文档:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

部署

创建一个 Deployment,镜像地址为 bitnami/kubectl:latest 或指定具体版本 bitnami/kubectl:1.32.4

长期运行

bitnami/kubectl 镜像是一次性运行的,如希望这个镜像可以长期运行,则加上命令:command: ["/bin/sh", "-c", "sleep infinity"],图像界面则填入 "/bin/sh" "-c" "sleep infinity"

image.png

权限设置

Deployment 默认关联到 default 服务账号(ServiceAccount),这个账号没有足够的权限运行 kubectl 命令。如果希望镜像里管理整个集群,可以创建一个 ServiceAccount关联自带的集群管理员角色 cluster-admin,拥有整个集群的管理权限。

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kubectl-tool-sa
  namespace: kube-controller # 替换为自己的 namespace
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubectl-tool-role-binding
subjects:
- kind: ServiceAccount
  name: kubectl-tool-sa
  namespace: kube-controller # 替换为自己的 namespace
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: ujcms-kubectl-sa
  namespace: ujcms  # 替换为自己的 namespace
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ujcms-kubectl-role-binding
subjects:
- kind: ServiceAccount
  name: ujcms-kubectl-sa
  namespace: ujcms  # 替换为自己的 namespace
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

然后在 Deployment 高级设置中,设置 ServiceAcountName 为上面创建的 ServiceAccount kubectl-tool-saujcms-kubectl-sa

image.png

0791-85271700
QQ咨询:1779755751
QQ交流群:626599871
微信咨询
微信扫码咨询
微信交流群
微信交流群
Powered by UJCMS © 2010-2025 All Rights Reserved
QQ咨询
电话
微信
微信扫码咨询