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:

  1. 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"

  1. Open a browser and access WordPress using the obtained URL.

  2. 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的更多相关文章

  1. 国内不fq安装K8S三: 使用helm安装kubernet-dashboard

    目录 3 使用helm安装kubernet-dashboard 3.1 Helm的安装 3.2 使用Helm部署Nginx Ingress 3.3 使用Helm部署dashboard 3.4 使用He ...

  2. kubernetes系列:(三)、helm的安装和使用

    一.helm简介 kubernetes : 解决了容器维护的难题,通过yaml编写,比如deployment,job,statefulset.configmap等等,通过控制循环,让容器镜像便于管理, ...

  3. Kubernetes K8S之通过helm部署metrics-server与HPA详解

    Kubernetes K8S之通过helm部署metrics-server与 Horizontal Pod Autoscaling (HPA)详解 主机配置规划 服务器名称(hostname) 系统版 ...

  4. 【k8s】在AWS EKS部署并通过ALB访问k8s Dashboard保姆级教程

    本教程适用范围 在AWS上使用EKS服务部署k8s Dashboard,并通过ALB访问 EKS集群计算节点采用托管EC2,并使用启动模板. 使用AWS海外账号,us-west-2区域 使用账号默认v ...

  5. 云原生 • Kubernetes 认识 k8s、k8s 架构、核心概念点介绍

    云原生 • Kubernetes 认识 k8s.k8s 架构.核心概念点介绍 一.Kubernetes 简介Kubernetes 简称 k8s,是支持云原生部署的一个平台,起源于谷歌.谷歌早在十几年之 ...

  6. K8S—dashboard ui部署

    一.Dashboard UI概述 仪表板是基于Web的Kubernetes用户界面.您可以使用仪表板将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随 ...

  7. openstack horizon 学习(2) navigation、dashboard、panels

    本章的主要内容是如何用horizon的navigation结构添加一个应用的面板. Horizon中提供了两种为应用添加panel的方法,一种是通过Pluggable Settings的方式,另一种是 ...

  8. Ubuntu下搭建Kubernetes集群(4)--部署K8S Dashboard

    K8S Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并可展示集群的状态.K8S集群安装好后默认没有包含Dashboard,我们需要额外创建它. 首先我们执行命令: wg ...

  9. [转帖] k8s dashboard 的创建 升级 以及 admin token的创建和简单使用.

    Kubernetes Dashboard中的身份认证详解 https://jimmysong.io/posts/kubernetes-dashboard-upgrade/ Thu Nov 2, 201 ...

  10. K8S dashboard 创建只读账户

    1.创建名字为“Dashboard-viewonly“的Cluster Role,各种资源只给予了list,get,watch的权限.dashboard-viewonly.yaml --- apiVe ...

随机推荐

  1. Java基础篇(05):函数式编程概念和应用

    目录 一.函数式概念 二.函数与方法 三.JDK函数基础 1.Lambda表达式 2.函数式接口 四.Optional类 1.Null判断 2.Optional应用 五.Stream流 一.函数式概念 ...

  2. [转帖]nginx配置文件中对于if条件语句的写法(附nginx跨域文件配置)

    前言 在nginx配置文件中,可以使用if语句,但是对于else语句其实是不支持的,并且and条件和or条件也是不支持的 实现 else条件的写法 新建一个开关变量flag,初始值为0,如果为1说明进 ...

  3. [转帖]shell编程之循环语句

    目录 一.循环语句 for循环 for语句的结构 嵌套循环 while语句的结构 while语句应用示例 until语句的结构 until语句示例 二.跳出循环 continue跳出循环 break跳 ...

  4. [转帖]TiKV 缩容不掉如何解决?

    TiKV节点缩容不掉,通常遇到的情况: 1.经常遇到的情况是:3个节点的tikv集群缩容肯定会一直卡着,因为没有新节点接受要下线kv的region peer. 2.另外就是除缩容tikv外,剩下的KV ...

  5. [转帖]SQL Server数据库存储总结

    SQL Server数据库存储文件类型:数据文件和日志文件.数据文件以页面作为存储单元存储数据. 页面:即数据页面,数据页(Page).是系统在磁盘间中分配的一段大小为8k的连续空间. 文件头(Fil ...

  6. [转帖]nacos discovery和config

    微服务和nacos版本都在2.x及之后. 1.discovery用于服务注册,将想要注册的服务注册到nacos中,被naocs发现. pom引入的依赖是: yml配置文件中: 2.config用于获取 ...

  7. 京东云RASP云原生安全免疫创新实践

    作者:京东云 刘一鑫 1 背景 随着网络攻击事件整体呈上升趋势,应用作为网络入口承载着大量业务和流量,因此成为了安全的重灾区.黑客往往借助自动化的工具以及安全漏洞,对Web进行漏洞扫描和探测,进而利用 ...

  8. 如何给所有的 await async 函数添加try/catch?

    如何给所有的 await async 函数添加try/catch?做全局捕获异常. 面试官:如何给所有的 await async 函数添加try/catch?做全局捕获异常. 我们可以使用 windo ...

  9. 玩一玩golang汇编

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 因为只是玩一玩,所以走的路线是:用C写代码,把C编译成AT ...

  10. 2023年第七届蓝帽杯初赛wp

    取证检材容器密码:Hpp^V@FQ6bdWYKMjX=gUPG#hHxw!j@M9 案情介绍 2021年5月,公安机关侦破了一起投资理财诈骗类案件,受害人陈昊民向公安机关报案称其在微信上认识一名昵称为 ...