k8s-dashboard、helm
dashboard
我们之前操作集群都是在命令行里面进行操作的,他有没有像OpenStack平台那样的dashboard呢?也是有的
安装dashboard
我们可以直接进入官网按照教程来 https://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/web-ui-dashboard/
[root@master dashboard]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
[root@master dashboard]# kubectl get pods -n kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-7bc864c59-gzqvp 1/1 Running 0 69s
kubernetes-dashboard-6c7ccbcf87-lj6hr 1/1 Running 0 69s
两个pod都running之后我们还需要修改一下svc的类型,它默认是clusterIP,我们将他改成NodePort
[root@master dashboard]# kubectl edit -n kubernetes-dashboard svc/kubernetes-dashboard
# 找到type那一行,将clusterIP改成NodePort
[root@master dashboard]# kubectl -n kubernetes-dashboard get svc/kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard NodePort 10.98.60.181 <none> 443:32760/TCP 10m
这里他会给我们映射一个端口,我们来访问一下
打开浏览器输入https://集群内任意节点IP:32760,注意你自己的端口,你的端口是多少就写多少

这个时候他需要我们登录,需要提供token,并且他还写了是SA的token,我们来创建一个SA
1. 创建SA
[root@master ~]# kubectl create sa dashboard -n kube-system
serviceaccount/dashboard created
2. 集群角色绑定
[root@master ~]# kubectl create clusterrolebinding dashboard-role --clusterrole admin --serviceaccount kube-system:dashboard -n kube-system
clusterrolebinding.rbac.authorization.k8s.io/dashboard-role created
3. 创建secret
apiVersion: v1
kind: Secret
metadata:
name: dashboard-sec
namespace: kube-system
annotations:
kubernetes.io/service-account.name: "dashboard"
type: kubernetes.io/service-account-token
[root@master dashboard]# kubectl apply -f secret.yaml -n kube-system
secret/dashboard-sec created
这样我们的secret就创建好了
4. 查看token
# 先查看一下secret
[root@master dashboard]# kubectl get secret -n kube-system
NAME TYPE DATA AGE
dashboard-sec kubernetes.io/service-account-token 3 83s
# 查看token
[root@master dashboard]# kubectl describe secret/dashboard-sec -n kube-system | tail -1
token: eyJhbGciOiJSUzI1NiIsImtpZCI6InhaZDhHalByWHMxUmdudmlNRXJyVEJLN00tY3dvRW01blFUR3BkZnhwd0EifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtc2VjIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjA4MmQ4ZDU2LTJhZjgtNDYzZC05NmNlLWY5NjRkOWExNjA1YiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTpkYXNoYm9hcmQifQ.LY2KNuMDuC9UubrE0-BoMM2jNOVFAdgTGEFIwLL8q1G-HGQgb1L5Ou5FlpvLMH7lGM-vf8KyE6hjwpVeYuCP4DltXYy_bI6fLJJ8AA8-JTreeaBg4_RSi1ZiC8LbFZ-ZvDjHqyJA3xPv-Z-flUO6QcNxZTz3H3zI9fHx_jCxeaGiU1qcTpT1F9rApu9qQnQTWOCQtUlHgiephW4Co_40Vx_TNBowBCDynNeF8PkmXyrdUXQLb6OnIgPJe2DG5e0EH5EWzKWXqBqHczbfIXueGOfwkTWu-pim_ZSKc3LAwjPCVWcm4RzraBfS2Q4Ps3MeNtWuublCNxT5CvNeH_YaLw
这里就是我们所需要的token了,将他复制到登录页面

登录之后就是这样的了,在这里面也可以去创建pod,deployment之类的资源,但我认为这里创建比命令行更麻烦
图形化界面就安装完成了
helm
helm就类似于centos/redhat里面的yum包管理工具,或者说像OpenStack里边的heat,以及Ansible自动化运维都是跟这个类似的,看你怎么理解方便
我们先来说Anisble吧,在Ansible里面,你需要部署服务的话需要自己去编写playbook,但是你又觉得从头开始写比较的麻烦,怎么办呢?是可以这样的,Ansible里面有一个galaxy,这个工具可以从指定的源里面去下载别人写好的playbook,你只要保证网络能通,那么你下载好了之后就可以直接去使用了
helm也是这样,比如你想搞一个wordpress博客系统起来,你得自己做持久化存储,自己搭数据库,自己对接数据库,各种操作相当麻烦,但是helm可以让我们从指定的源里面下载别人已经写好的,我们直接拿回来用就可以了
当然,下载别人的helm只是其实的一个功能而已,并不是说他只能下载,就像Ansible一样,你也可以自己写playbook,不一定要去下载别人的,你写完之后去执行,那么Ansible就会按照你的剧本(playbook)里面写的步骤去帮你完成服务的部署
说起来麻烦,我们直接来使用就知道效果是什么了
安装helm
1. 下载tar包
[root@master opt]# wget https://get.helm.sh/helm-v3.14.1-linux-amd64.tar.gz
2. 解压
[root@master opt]# tar -zxvf helm-v3.14.1-linux-amd64.tar.gz
3. 配置环境变量
[root@master opt]# cd linux-amd64/
[root@master linux-amd64]# cp helm /usr/local/bin/
4. 配置helm补全
helm默认是和k8s一样没有补全的,你想要补全的话需要做一些配置
[root@master ~]# echo "source <(helm completion bash)" >> /etc/profile
这样helm就安装完成了,并且也是可以使用tab键补全的
配置helm源
我们先来看一下当前有没有源
[root@master ~]# helm repo list
Error: no repositories to show
他告诉我我们现在是没有源的
那么我们来添加一个
[root@master ~]# helm repo add Micro http://mirror.azure.cn/kubernetes/charts
"Micro" has been added to your repositories
[root@master ~]# helm repo list
NAME URL
Micro http://mirror.azure.cn/kubernetes/charts
使用helm
我们配置好源了之后我们就可以来看看如何去使用了
1. search
[root@master ~]# helm search repo wordpress
NAME CHART VERSION APP VERSION DESCRIPTION
Micro/wordpress 9.0.3 5.3.2 DEPRECATED Web publishing platform for building...
2. pull
[root@master ~]# helm pull Micro/wordpress
[root@master ~]# ls
anaconda-ks.cfg docker k8s off.sh prometheus wordpress-9.0.3.tgz
执行pull之后他就会将别人打包好的chart包下载到本地
3. 执行安装
3.1 解压
# 1. 将包进行解压
[root@master ~]# tar -zxvf wordpress-9.0.3.tgz
[root@master ~]# ls
anaconda-ks.cfg docker k8s off.sh prometheus wordpress wordpress-9.0.3.tgz
3.2 将pv持久化存储关闭
关闭pv是因为我们目前并没有定义,如果不关闭的话pod的状态会一直是pending
[root@master ~]# vim wordpress/values.yaml
321 persistence:
# 将322行的enabled 的 true改为false
322 enabled: false
# 还有这个地方
370 persistence:
371 enabled: false
# 关闭mysql的pv
[root@master ~]# vim wordpress/charts/mariadb/values.yaml
219 persistence:
220 ## If true, use a Persistent Volume Claim, If false, use emptyDir
221 ##
# 这个在222行
222 enabled: false
367 persistence:
368 ## If true, use a Persistent Volume Claim, If false, use emptyDir
369 ##
# 还有370行
370 enabled: false
# 另一个文件
[root@master ~]# vim wordpress/charts/mariadb/values-production.yaml
# 在222行和369行
219 persistence:
222 enabled: false
366 persistence:
369 enabled: false
3.3 安装
# 改完之后我们就可以开始安装了
[root@master ~]# helm install word ./wordpress
WARNING: This chart is deprecated
NAME: word
LAST DEPLOYED: Wed Feb 21 14:37:50 2024
NAMESPACE: zhangsan
STATUS: deployed
REVISION: 1
NOTES:
This Helm chart is deprecated
Given the `stable` deprecation timeline (https://github.com/helm/charts#deprecation-timeline), the Bitnami maintained Helm chart is now located at bitnami/charts (https://github.com/bitnami/charts/).
The Bitnami repository is already included in the Hubs and we will continue providing the same cadence of updates, support, etc that we've been keeping here these years. Installation instructions are very similar, just adding the _bitnami_ repo and using it during the installation (`bitnami/<chart>` instead of `stable/<chart>`)
```bash
$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm install my-release bitnami/<chart> # Helm 3
$ helm install --name my-release bitnami/<chart> # Helm 2
To update an exisiting stable deployment with a chart hosted in the bitnami repository you can execute
$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm upgrade my-release bitnami/<chart>
Issues and PRs related to the chart itself will be redirected to bitnami/charts GitHub repository. In the same way, we'll be happy to answer questions related to this migration process in this issue (https://github.com/helm/charts/issues/20969) created as a common place for discussion.
** Please be patient while the chart is being deployed **
To access your WordPress site from outside the cluster follow the steps below:
- Get the WordPress URL by running these commands:
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
Watch the status with: 'kubectl get svc --namespace zhangsan -w word-wordpress'
export SERVICE_IP=$(kubectl get svc --namespace zhangsan word-wordpress --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}")
echo "WordPress URL: http://$SERVICE_IP/"
echo "WordPress Admin URL: http://$SERVICE_IP/admin"
Open a browser and access WordPress using the obtained URL.
Login with the following credentials below to see your blog:
echo Username: user
echo Password: $(kubectl get secret --namespace zhangsan word-wordpress -o jsonpath="{.data.wordpress-password}" | base64 --decode)
你会看到这么一大串信息,这些并不是报错,这是他给出的提示信息
然后我们来看看pod的状态
```bash
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
word-mariadb-0 1/1 Running 0 2m56s
word-wordpress-587fd89696-zj4c6 1/1 Running 1 (2m11s ago) 2m56s
正常情况下就都是running,如果状态是pending,那么说明你还有pv没有关闭,找到他关闭掉
3.4 访问
查看端口映射
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
word-mariadb ClusterIP 10.105.148.14 <none> 3306/TCP 3m6s
word-wordpress LoadBalancer 10.98.198.201 192.168.200.242 80:31332/TCP,443:32209/TCP 3m6s
访问,因为我们之前配置过Load Balancer的地址池,所以这里会分配一个地址,可以直接通过这个地址去访问,或者你直接将这个svc的type改成nodeport也是可以的

3.5 获取登录的用户名和密码
在我们执行安装的时候给出的信息其实就包含了账号和密码
echo Username: user
echo Password: $(kubectl get secret --namespace zhangsan word-wordpress -o jsonpath="{.data.wordpress-password}" | base64 --decode)
用户名就是user
密码是加密过的,我们通过他给出的这个命令来执行一下
[root@master ~]# echo Password: $(kubectl get secret --namespace zhangsan word-wordpress -o jsonpath="{.data.wordpress-password}" | base64 --decode)
Password: zZGcmjv2g7
好的,我们现在知道了用户名和密码了来登录一下看看是不是的呢?
我们通过浏览器访问
http://节点ip:端口/wp-login.php


确实登录了,没有任何的问题
我们在安装的时候是关闭了pv的,如果你需要数据存储下来,那么你就自己创建pv就可以了,就不用将true改成false了
好了,这些就是helm的简单使用方法了,当然你也可以自己去写chart包
k8s-dashboard、helm的更多相关文章
- 国内不fq安装K8S三: 使用helm安装kubernet-dashboard
目录 3 使用helm安装kubernet-dashboard 3.1 Helm的安装 3.2 使用Helm部署Nginx Ingress 3.3 使用Helm部署dashboard 3.4 使用He ...
- kubernetes系列:(三)、helm的安装和使用
一.helm简介 kubernetes : 解决了容器维护的难题,通过yaml编写,比如deployment,job,statefulset.configmap等等,通过控制循环,让容器镜像便于管理, ...
- Kubernetes K8S之通过helm部署metrics-server与HPA详解
Kubernetes K8S之通过helm部署metrics-server与 Horizontal Pod Autoscaling (HPA)详解 主机配置规划 服务器名称(hostname) 系统版 ...
- 【k8s】在AWS EKS部署并通过ALB访问k8s Dashboard保姆级教程
本教程适用范围 在AWS上使用EKS服务部署k8s Dashboard,并通过ALB访问 EKS集群计算节点采用托管EC2,并使用启动模板. 使用AWS海外账号,us-west-2区域 使用账号默认v ...
- 云原生 • Kubernetes 认识 k8s、k8s 架构、核心概念点介绍
云原生 • Kubernetes 认识 k8s.k8s 架构.核心概念点介绍 一.Kubernetes 简介Kubernetes 简称 k8s,是支持云原生部署的一个平台,起源于谷歌.谷歌早在十几年之 ...
- K8S—dashboard ui部署
一.Dashboard UI概述 仪表板是基于Web的Kubernetes用户界面.您可以使用仪表板将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随 ...
- openstack horizon 学习(2) navigation、dashboard、panels
本章的主要内容是如何用horizon的navigation结构添加一个应用的面板. Horizon中提供了两种为应用添加panel的方法,一种是通过Pluggable Settings的方式,另一种是 ...
- Ubuntu下搭建Kubernetes集群(4)--部署K8S Dashboard
K8S Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并可展示集群的状态.K8S集群安装好后默认没有包含Dashboard,我们需要额外创建它. 首先我们执行命令: wg ...
- [转帖] k8s dashboard 的创建 升级 以及 admin token的创建和简单使用.
Kubernetes Dashboard中的身份认证详解 https://jimmysong.io/posts/kubernetes-dashboard-upgrade/ Thu Nov 2, 201 ...
- K8S dashboard 创建只读账户
1.创建名字为“Dashboard-viewonly“的Cluster Role,各种资源只给予了list,get,watch的权限.dashboard-viewonly.yaml --- apiVe ...
随机推荐
- K8s集群CoreDNS监控告警最佳实践
本文分享自华为云社区<K8s集群CoreDNS监控告警最佳实践>,作者:可以交个朋友. 一 背景 coreDNS作为K8s集群中的关键组成部分.主要负责k8s集群中的服务发现,域名解析等功 ...
- [转帖]十分钟掌握 Vim 编辑器核心功能
https://juejin.cn/post/6929248764746006535 前言 相信不论是前端还是后台多多少少都需要上到服务器上做一些操作,改改配置文件等,大多数 Linux 服务器默认都 ...
- drop_caches 的简单学习
drop_caches 的简单学习 背景 最近一段时间一直在学习内存相关的知识 Linux系统里面的内存管理还是非常复杂的. 我这边理解 Linux从宏观层次的 段页式内存管理 到细节的buddy和s ...
- [转帖]TIDB - TIDB集群的扩容和缩容及TIUP指令说明
一.TIUP工具简介 前面介绍了使用TIUP搭建TIDB集群,本篇文章详细介绍下使用TIUP对集群进行扩容和缩容. 在面对双十一这种流量突峰的场景,我们平常的TIDB集群有可能承受不住,因此需要提前进 ...
- [转帖]linux性能检测之sar详解
http://blog.51niux.com/?id=99 sar也是sysstat中的一员. 一.介绍 1.1 简介 sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数 ...
- 是否开启超线程对CPU不同命令的影响情况
背景 最近公司购买了一台服务器, 要进行一次性能测试. 基于此, 我这边进行了一下超线程与否的测试验证 使用stress-ng的命令,对所有的 CPU 方法进行测试 然后只分析 bogo ops/s ...
- [专题]中立遭质疑,提价遭反对,ARM的生存难题怎么破?
中立遭质疑,提价遭反对,ARM的生存难题怎么破? https://news.cnblogs.com/n/669715/ ARM税要提高.. RISC-V的机会? 文/黎文婕 来源:锌刻度(ID:znk ...
- 你也能成为“黑客”高手——趣谈Linux Shell编程语言
作者:京东零售 杜兴文 我们看过很多在电脑命令行敲一些命令并给观众展示很高科技的画面感的电影,比如<盗梦空间><操作系统革命><代码>等等, 再想想电影黑客帝国中的 ...
- vue3新特性teleport传送原来这么神奇
我对teleport的理解 teleport有传送的意思,读音[te li po t][嘻嘻],看官们应该知道读啥子了吧 它可以将你写的代码传送到某一个地方 传送到哪一个地方呢? 传送到你标记的地方, ...
- 【K哥爬虫普法】大众点评VS百度地图,论“数据权属”对爬虫开发的罪与罚!
我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知 ...