K8S的WebUI:Dashboard&Kuboard
<h2 id="kubernetes-官方dashboard-部署">Kubernetes 官方Dashboard 部署</h2><p> Kubernetes Dashboard 是 Kuberne
Kubernetes 官方Dashboard 部署
Kubernetes Dashboard 是 Kubernetes 的官方 Web UI。使用 Kubernetes Dashboard,您可以:
向 Kubernetes 集群部署容器化应用
诊断容器化应用的问题
管理集群的资源
查看集群上所运行的应用程序
创建、修改Kubernetes 上的资源(例如 Deployment、Job、DaemonSet等)
展示集群上发生的错误 例如:您可以伸缩一个 Deployment、执行滚动更新、重启一个 Pod 或部署一个新的应用程序
安装
- 访问https://github.com/kubernetes/dashboard/releases 获取最新的dashboard安装yaml文件。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml
访问
Kubernetes Dashboard 当前,只支持使用 Bearer Token登录。 由于 Kubernetes Dashboard 默认部署时,只配置了最低权限的 RBAC。因此,我们要创建一个名为 admin-user 的 ServiceAccount,再创建一个 ClusterRolebinding,将其绑定到 Kubernetes 集群中默认初始化的 cluster-admin 这个 ClusterRole。
- 创建 Service Account 和 ClusterRoleBinding 使用 kubeadm 安装集群时,默认创建了 ClusterRole cluster-admin。此时我们可以直接为刚才的 ServiceAccount 创建 ClusterRoleBinding。
vi auth.yaml
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects:
- kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard ```
- 执行如下命令可创建 ServiceAccount 和 ClusterRoleBinding
kubectl apply -f auth.yaml
- 修改使用nodePort访问
#默认是使用的ClusterIP方式,外部无法访问dashboard,所以需要修改成NodePort的方式 vi svc.yaml kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: type: NodePort ports: - port: 8443 nodePort: 32443 targetPort: 8443 selector: k8s-app: kubernetes-dashboard
kubectl apply -f svc.yaml
- 获取Bearer Token
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
- 登录
# 使用nodeip + nodeport访问,输入token登录。 https://192.168.190.11:32443
安装Kuboard
Kuboard 是基于一款基于 Kubernetes 的微服务管理面板。
- Kuboard 关注微服务参考架构的视角对界面进行组织,参考 Kuboard 简介
- Kuboard 中,不需要手工编写 YAML 文件,进一步降低 K8S 使用难度,提高便捷性
- Kuboard 可以导出整个微服务架构的部署信息,并在新的名称空间/集群导入配置信息
- Kuboard 的一个发展方向是,提供内建的 监控套件(目前的全局监控套件成熟度比较高)
vi Kuboard.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: kuboard namespace: kube-system annotations: k8s.eip.work/displayName: kuboard k8s.eip.work/ingress: "true" k8s.eip.work/service: NodePort k8s.eip.work/workload: kuboard labels: k8s.eip.work/layer: monitor k8s.eip.work/name: kuboard spec: replicas: 1 selector: matchLabels: k8s.eip.work/layer: monitor k8s.eip.work/name: kuboard template: metadata: labels: k8s.eip.work/layer: monitor k8s.eip.work/name: kuboard spec: containers: - name: kuboard image: eipwork/kuboard:latest imagePullPolicy: Always
apiVersion: v1 kind: Service metadata: name: kuboard namespace: kube-system spec: type: NodePort ports:
- name: http port: 80 targetPort: 80 nodePort: 32567 selector: k8s.eip.work/layer: monitor k8s.eip.work/name: kuboard
apiVersion: v1 kind: ServiceAccount metadata: name: kuboard-user namespace: kube-system
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kuboard-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects:
- kind: ServiceAccount name: kuboard-user namespace: kube-system
kubectl apply -f Kuboard.yaml### 获取token与访问
#此Token拥有 ClusterAdmin 的权限,可以执行所有操作
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}')
# 使用nodeip + nodeport访问,输入token登录。
http://192.168.190.11:32567
更多推荐
所有评论(0)