Kubernetes部署dashboard

news2024/11/18 17:24:37

Kubernetes部署dashboard

Kubernetes集群安装

鲲鹏arm64架构下安装KubeSphere

linux安装部署k8s(kubernetes)和解决遇到的坑

dashboard部署

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
  
# 开启本机访问代理 proxy代理只能本机访问
$ kubectl proxy
 kubectl proxy --address='0.0.0.0' --port=8001
kubectl proxy --address='0.0.0.0' --port=30099 --accept-hosts='^*$'

访问
http://192.168.1.53:30099/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

在这里插入图片描述

加了允许外部访问,使用token 登录无反应,跳过登录进入后,有问题,看不了内容

kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token 获取token

创建用户

参考:
https://www.cnblogs.com/RainingNight/p/deploying-k8s-dashboard-ui.html

创建服务账号, 首先创建一个叫admin-user的服务账号,并放在kube-system名称空间下
# admin-user.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system

执行kubectl create命令
kubectl create -f admin-user.yaml

绑定角色, 默认情况下,kubeadm创建集群时已经创建了admin角色,我们直接绑定即可
# admin-user-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

执行kubectl create命令
kubectl create -f  admin-user-role-binding.yaml


获取Token, 现在我们需要找到新创建的用户的Token,以便用来登录dashboard
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

然后把Token复制到登录界面的Token输入框中,登入后显示如下

在这里插入图片描述

查看pod

kubectl get pods --namespace kube-system
get pods -n kube-system | grep -v Running
kubectl get services --namespace kube-system

在这里插入图片描述
在这里插入图片描述

kubeadm 部署的k8s集群 Dashboard遇到的问题

参考:
https://www.jianshu.com/p/f9a2bd82e368

使得pod不会分配到到master节点上
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

cat kubernetes-dashboard.yaml 
# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# ------------------- Dashboard Secret ------------------- #

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-certs
  namespace: kube-system
type: Opaque

---
# ------------------- Dashboard Service Account ------------------- #

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system

---
# ------------------- Dashboard Role & Role Binding ------------------- #

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kubernetes-dashboard-minimal
  namespace: kube-system
rules:
  # Allow Dashboard to create 'kubernetes-dashboard-key-holder' secret.
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["create"]
  # Allow Dashboard to create 'kubernetes-dashboard-settings' config map.
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["create"]
  # Allow Dashboard to get, update and delete Dashboard exclusive secrets.
- apiGroups: [""]
  resources: ["secrets"]
  resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"]
  verbs: ["get", "update", "delete"]
  # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
- apiGroups: [""]
  resources: ["configmaps"]
  resourceNames: ["kubernetes-dashboard-settings"]
  verbs: ["get", "update"]
  # Allow Dashboard to get metrics from heapster.
- apiGroups: [""]
  resources: ["services"]
  resourceNames: ["heapster"]
  verbs: ["proxy"]
- apiGroups: [""]
  resources: ["services/proxy"]
  resourceNames: ["heapster", "http:heapster:", "https:heapster:"]
  verbs: ["get"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: kubernetes-dashboard-minimal
  namespace: kube-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: kubernetes-dashboard-minimal
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kube-system

---
# ------------------- Dashboard Deployment ------------------- #

kind: Deployment
apiVersion: apps/v1beta2
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: kubernetes-dashboard
  template:
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
    spec:
      nodeName: k8s-master
      containers:
      - name: kubernetes-dashboard
        image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0
        ports:
        - containerPort: 8443
          protocol: TCP
        args:
          - --auto-generate-certificates
          # Uncomment the following line to manually specify Kubernetes API server Host
          # If not specified, Dashboard will attempt to auto discover the API server and connect
          # to it. Uncomment only if the default does not work.
          # - --apiserver-host=http://my-address:port
        volumeMounts:
        - name: kubernetes-dashboard-certs
          mountPath: /certs
          # Create on-disk volume to store exec logs
        - mountPath: /tmp
          name: tmp-volume
        livenessProbe:
          httpGet:
            scheme: HTTPS
            path: /
            port: 8443
          initialDelaySeconds: 30
          timeoutSeconds: 30
      volumes:
      - name: kubernetes-dashboard-certs
        secret:
          secretName: kubernetes-dashboard-certs
      - name: tmp-volume
        emptyDir: {}
      serviceAccountName: kubernetes-dashboard
      # Comment the following tolerations if Dashboard must not be deployed on master
     # tolerations:
     # - key: node-role.kubernetes.io/master
     #   effect: NoSchedule

---
# ------------------- Dashboard Service ------------------- #

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 443
      nodePort: 30001
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
执行命令
kubectl delete -f kubernetes-dashboard.yaml  

kubectl create -f kubernetes-dashboard.yaml 

配置 type: NodePort 让外部访问
https://192.168.1.53:30001/#!/namespace?namespace=default

使用token登录
kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token

参考链接:
https://www.cnblogs.com/RainingNight/p/deploying-k8s-dashboard-ui.html
https://www.jianshu.com/p/f9a2bd82e368

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1710534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑出现:excel词典(xllex.dll)文件丢失或损坏的错误提示怎么办?有效的将丢失的xllex.dll修复

当遇到 Excel 提示“词典 (xllex.dll) 文件丢失或损坏”的问题时,通常意味着该动态链接库文件(Dynamic Link Library,DLL),它与拼写检查功能相关联的,无法被正确找到或者合适地使用。那么有什么办法可以解决…

【ARM+Codesys案例】T3/RK3568/树莓派+Codesys锂电叠片机方案:结合CODESYS实现高效生产

锂电叠片机解决方案 乘风破浪,促进新能源行业发展 锂电池是依靠锂离子在正极与负极之间移动来达到充放电目的的一种可充电电池,具有高能量密度、高电压、寿命长、无记忆效应等优点。锂电池属于国家政策扶持的高速发展行业,近年发展快速&…

开发者的福音:免去搭建服务,让你的应用开发变得像吃蛋糕一样简单!

传统应用开发的"噩梦" 想象一下,你正在准备一场盛大的晚宴,但必须从零开始建造厨房、种植食材、甚至学习烹饪技巧。这就是传统应用开发的现状——你不仅要设计数据库、编写API接口,还要处理对象存储、实时数据库、云数据库等一系列…

LeetCode - 双指针(Two Pointers) 算法集合 [对撞指针、快慢指针、滑动窗口、双链遍历]

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/139270999 双指针算法是一种常见且灵活的技巧,通过使用两个指针协同完成任务。这些指针可以指向不同的元素,具体应用取决于…

如何将红酒配餐融入日常生活

红酒配餐不仅可以提升用餐的品质,还可以为日常生活增添一份优雅和情调。云仓酒庄雷盛红酒以其卓着的品质和丰富的口感,成为了实现红酒配餐融入日常生活的理想选择。下面将介绍如何将雷盛红酒配餐融入日常生活。 首先,了解红酒的基本知识。了解…

动态规划part01 Day41

动态规划算法解题步骤 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 LC509斐波那契数 LC70爬楼梯 LC746使用最小花费爬楼梯 dp[]含义:爬到第i层楼梯的最小花费

webpack5基础和开发模式配置

运行环境 nodejs16 webpack基础 webpack打包输出的文件是bundle 打包就是编译组合 webpack本身功能 仅能编译js文件 开始使用 基本配置 五大核心概念 准备webpack配置文件 1.在根目录 2.命名为webpack.config.js 开发模式介绍 处理样式资源 处理css样式资源文件…

攻防世界-bug题目详解

1.打开靶场,先注册一个用户,然后登录上,注册的时候发现用户名为admin的用户存在,于是注册的用户为admin123123 点击personal如图所示可以知道我注册的这个用户的uid是5,然后还有我注册时候的信息 使用burp抓包&#…

零基础小白本地部署大疆上云api(个人记录供参考)

文章目录 运行前准备前后端项目运行1.前端项目: 后端项目运行必须先依靠emqx运行必须先依靠redis运行修改后端项目的application.yml文件 运行前准备 1.保证电脑又node.js环境,可以正常使用npm 2.Java的jdk必须是11及以上版本否则无效 3.下载好emqx,red…

three.js 性能对比 babylon.js

babylon.js pbr 材质, 27帧 three.js pbr 材质, 26 帧 6172 个mesh.

小阿轩yx-Shell 编程之循环语句与函数

小阿轩yx-Shell 编程之循环语句与函数 for 循环语句 可以很好地解决顺序编写异常烦琐、困难重重的全部代码 (){}:里边写的都是命令 ):不能嵌套 $():可以嵌套,适合更…

使用Datav,echarts开发各种地图

一、功能描述 在实际中,有时候需要针对不同的地图进行开发,而能在网上找到现成,与需要匹配度高的,几乎很难,而且找起对应的资源也相对麻烦。所以结合DataV提供的地图数据,就能开发出各种地图,然…

机器学习-3-特征工程的重要性及常用特征选择方法

参考特征重要性:理解机器学习模型预测中的关键因素 参考[数据分析]特征选择的方法 1 特征重要性 特征重要性帮助我们理解哪些特征或变量对模型预测的影响最大。 特征重要性是数据科学中一个至关重要的概念,尤其是在建立预测性任务的模型时。想象你正在尝试预测明天是否会下…

2024年电子、电气与信息科学国际会议(EEIS 2024)

2024年电子、电气与信息科学国际会议(EEIS 2024) 2024 International Conference on Electronics, Electrical and Information Science 【重要信息】 大会地点:昆明 大会官网:http://www.iceeis.com 投稿邮箱:iceeis…

为什么要学习c++?

你可能在想,“C?那不是上个时代的产物吗?” 哎呀,可别小看了这位“老将”,它在21世纪的科技舞台上依旧光芒万丈,是许多尖端技术不可或缺的基石! 1. 无可替代 c源于c语言,它贴近于硬…

5月28(信息差)

🌍 胖东来“改造”永辉超市 细则公布 胖东来“改造”永辉超市 细则公布! 🎄在 Windows 下玩转多媒体处理框架 BMF https://juejin.cn/post/7371640570421755913 ✨四川:将人工智能作为一号创新工程,加快突破一批原…

提高联盟营销收入的秘密武器

联盟营销已经成为推广产品和服务的关键策略之一。通过利用社交媒体平台如Facebook、X(前Twitter)、Instagram和TikTok,联盟客能够触及广泛的潜在客户,展开高效的营销活动。 如今,联盟客手握多个账号来拓展自己的业务已…

SQL实战 将学生信息进行 行转列输出

表countries 数据如下: namecontinentJaneAmericaPascalEuropeXiAsiaJackAmerica数据建表来源: SQL试题使得每个学生 按照姓名的字⺟顺序依次排列 在对应的⼤洲下⾯展示为如下的数据样式: namecontinentJane, JackAmericaXiAsiaPascalPasca…

Vue 3指令与事件处理

title: Vue 3指令与事件处理 date: 2024/5/25 18:53:37 updated: 2024/5/25 18:53:37 categories: 前端开发 tags: Vue3基础指令详解事件处理高级事件实战案例最佳实践性能优化 第1章 Vue 3基础 1.1 Vue 3简介 Vue 3 是一个由尤雨溪(尤大)领导的开源…

airtest做web端UI自动化实战

安装 官网下载客户端 airtest库安装 pip install airtest pip install pocoui脚本录制 利用airtest客户端录制脚本 web端辅助插件-selenium windows打开: 设置chrome路径 开始调式录制 脚本运行 # -*- coding: utf-8 -*- """ Time : 2024/5/…