Helm的资源安装和基本使用

目录

一.Helm的出现

二.Helm工具

1.部署helm

2.helm可用命令介绍

三.chart

1.添加、查看、删除存储库

2.查找chart、查看chart信息、安装chart等

3.安装chart后产生的release

四.安装mysql举例

1.固定chart安装

2.自定义chart安装


一.Helm的出现

在前面的k8s部署pod等资源的学习中,多数通过yaml文件进行部署,最多的也就部署七八个yaml文件共同搭配,但是像一些应用需要几十个yaml文件一起生效那么我们写起来、改起来并且配起来的复杂度就变高了,我们就需要一个工具去将这些资源整合成我么要部署的应用从而可以更方便地部署这个应用并实现yanl文件高可用减少复杂度,这种情况下就需要用到helm(类似于yum/dnf)。

二.Helm工具

helm一个命令行客户端工具(需要自行安装的),主要用于 Kubernetes 应用 chart (后面会提及)的创建、打包、发布和管理等

1.部署helm

下载包并解压将helm文件拷贝或移动/usr/local/bin下并配置命令补全

[root@k8s-master ~]# wget https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz
[root@k8s-master ~]# tar -zxvf helm-v3.12.3-linux-amd64.tar.gz
[root@k8s-master linux-amd64]# ll
total 49428
-rwxr-xr-x 1 1001 docker 50597888 Aug 11  2023 helm
-rw-r--r-- 1 1001 docker    11373 Aug 11  2023 LICENSE
-rw-r--r-- 1 1001 docker     3397 Aug 11  2023 README.md
[root@k8s-master linux-amd64]# cp helm /usr/local/bin/
[root@k8s-master linux-amd64]# helm completion bash > ~/.helmrc
[root@k8s-master linux-amd64]# source ~/.helmrc
[root@k8s-master linux-amd64]# helm version
version.BuildInfo{Version:"v3.12.3", GitCommit:"3a31588ad33fe3b89af5a2a54ee1d25bfe6eaa5e", GitTreeState:"clean", GoVersion:"go1.20.7"}

2.helm可用命令介绍

#helm --help
Usage:helm [command]
​
Available Commands:completion  为指定的shell生成自动补全脚本create      创建一个指定了名称的chartdependency  管理chart依赖env         Helm客户端环境信息get         下载release,可接all、hooks、manifest、notes、valuesall-获取所有已安装的release的信息。名称、状态、版本等hooks-获取指定 release 的 pre-install、post-install、pre-delete 和 post-delete 钩子的信息manifest-获取指定 release 的 Kubernetes 资源清单(manifest)。这个选项会显示 Helm chart 渲染后生成的所有 Kubernetes 资源清单,包括 Deployment、Service、ConfigMap 等资源的详细配置notes-获取指定 release 的笔记(notes)。这个选项会显示与 Helm chart 关联的任何备注或说明,通常包括有关如何访问应用程序、配置细节或其他相关信息values-获取指定 release 的配置值(values)。这个选项会显示 Helm chart 中定义的所有配置值,包括默认值和用户自定义的配置值,帮助了解release内的配置help        获取对后面命令的帮助history     获取发布历史install     安装一个chartlint        检查图表中可能存在的问题list        列出releasepackage     将chart目录存档plugin      安装、列出或卸载Helm插件pull        从远程仓库下载chart并解压push        将chart推到远程registry    从注册表登录或注销repo        添加、列表、删除、更新和索引chart存储库rollback    版本回滚search      查找chart,可用hub或reposhow        查看chart详细信息,可用all、chart、readme、valuesstatus      显示已命名版本的状态template    本地呈现模版test        运行测试uninstall   卸载releaseupgrade     更新releaseverify      验证给定路径上的图表是否已签名且有效version     查看版本信息

三.chart

用来描述k8s资源的文件集合,接下来进行配置chart资源存储库(对于资源库主要使用helm repo)和chart的一些操作。这里又设计到一个概念release(基于 Chart 的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个release,将在 k8s 中创建出真实运行的资源对象。)

1.添加、查看、删除存储库

[root@k8s-master helm]# helm repo add stable http://mirror.azure.cn/kubernetes/charts
#微软
[root@k8s-master helm]# helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
#阿里云
[root@k8s-master helm]# helm repo list
NAME    URL                                                   
stable  http://mirror.azure.cn/kubernetes/charts              
aliyun  https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
[root@k8s-master helm]# helm search repo stable  #列出改存储库中所有的资源清单
​
[root@k8s-master helm]# helm repo list    #删除指定名称存储库
NAME    URL                                                   
stable  http://mirror.azure.cn/kubernetes/charts              
aliyun  https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
bitnami https://charts.bitnami.com/bitnami                
[root@k8s-master helm]# helm repo remove bitnami
"bitnami" has been removed from your repositories
[root@k8s-master helm]# helm repo list
NAME    URL                                                   
stable  http://mirror.azure.cn/kubernetes/charts              
aliyun  https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

2.查找chart、查看chart信息、安装chart等

[root@k8s-master helm]# helm search repo stable/mysql   #可以指定存储库也可以不指定
[root@k8s-master helm]# helm search repo mysql
​
[root@k8s-master helm]# helm show chart stable/mysql    #查看具体某个chart的信息
apiVersion: v1
appVersion: 5.7.30
deprecated: true
description: DEPRECATED - Fast, reliable, scalable, and easy to use open-source relationaldatabase system.
home: https://www.mysql.com/
icon: https://www.mysql.com/common/logos/logo-mysql-170x115.png
keywords:
- mysql
- database
- sql
name: mysql
sources:
- https://github.com/kubernetes/charts
- https://github.com/docker-library/mysql
version: 1.6.9
​
[root@k8s-master helm]# helm install my-mysql stable/mysql  
#安装chart,格式为helm install 安装到本机的名称 (存储库)/chart名称
​
[root@k8s-master helm]# helm status my-mysql   #获取发布状态,这里面的额信息会告诉你的安装完成后如何获取所需参数,如安装的mysql机会提示你获取临时登录密码和外部访问方式等
​
[root@k8s-master helm]# helm show values stable/mysql   #使用此命令查看安装完成后需要配置的PV等,如mysql的就需要你配置一个8Gi的PV,因为你安装过后会产生一个pvc,但是缺少pv,你要创建好合适的pv并且和pvc成功绑定后,pod和svc才能正常使用
## Persist data to a persistent volume
persistence:enabled: true## database data Persistent Volume Storage Class## If defined, storageClassName: <storageClass>## If set to "-", storageClassName: "", which disables dynamic provisioning## If undefined (the default) or set to null, no storageClassName spec is##   set, choosing the default provisioner.  (gp2 on AWS, standard on##   GKE, AWS & OpenStack)### storageClass: "-"accessMode: ReadWriteOncesize: 8Giannotations: {}

3.安装chart后产生的release

[root@k8s-master helm]# helm list
NAME        NAMESPACE   REVISION    UPDATED                                 STATUS      CHART       APP VERSION
my-mysql    default     1           2024-03-17 10:07:52.665967704 +0800 CST deployed    mysql-1.6.9 5.7.30     

四.安装mysql举例

1.固定chart安装

(1)安装mysql

 [root@k8s-master helm]# helm install db stable/mysqlTo get your root password run:#获取临时登录密码MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo)
​
To connect to your database:
​
1. Run an Ubuntu pod that you can use as a client:
​kubectl run -i --tty ubuntu --image=ubuntu:16.04 --restart=Never -- bash -il
​
2. Install the mysql client:
​$ apt-get update && apt-get install mysql-client -y
​
3. Connect using the mysql cli, then provide your password:$ mysql -h my-mysql -p
​
To connect to your database directly from outside the K8s cluster:MYSQL_HOST=127.0.0.1MYSQL_PORT=3306
​# Execute the following command to route the connection:kubectl port-forward svc/my-mysql 3306
​mysql -h ${MYSQL_HOST} -P${MYSQL_PORT} -u root -p${MYSQL_ROOT_PASSWORD}#外部连接方式

(2)查看pod和svc状态

[root@k8s-master helm]# kubectl  get pods,svc
NAME                           READY   STATUS    RESTARTS   AGE
pod/my-mysql-b6999b8b5-h6vlr   0/1     Pendding   0         22m
​
NAME                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
service/kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP    4h23m
service/my-mysql     ClusterIP   10.106.24.9   <none>        3306/TCP   4h22m
​
#pod处于Pendding状态,describe一下pod查看问题所在,如下这种问题就是缺少存储等条件
Warning FailedScheduling 2m default-scheduler 0/4 nodes are available:
4 pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are
available: 3 Preemption is not helpful for scheduling.
​
#查看有没有pvc请求,然后进去查看到是有一个8Gi的pvc的(也可用通过上面提到的使用helm show values stable/mysql查看到),但是我们现在并没有pv去给他绑定,所以先创建一个符号需求的pv,查看绑定状态
[root@k8s-master helm]# kubectl get pvc my-mysql -o yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:annotations:meta.helm.sh/release-name: my-mysqlmeta.helm.sh/release-namespace: defaultpv.kubernetes.io/bind-completed: "yes"pv.kubernetes.io/bound-by-controller: "yes"creationTimestamp: "2024-03-17T02:07:53Z"finalizers:- kubernetes.io/pvc-protectionlabels:app: my-mysqlapp.kubernetes.io/managed-by: Helmchart: mysql-1.6.9heritage: Helmrelease: my-mysqlname: my-mysqlnamespace: defaultresourceVersion: "1478"uid: e6456c1d-f4ea-44e3-9372-6fd875d81e9f
spec:accessModes:- ReadWriteOnceresources:requests:storage: 8GivolumeMode: FilesystemvolumeName: mysql
status:accessModes:- ReadWriteOncecapacity:storage: 8Giphase: Bound
​
[root@k8s-master helm]# cat mysql-pv.yaml    #pvc和pv已绑定
apiVersion: v1
kind: PersistentVolume
metadata:name: mysql
spec:capacity:storage: 8Gi accessModes:- ReadWriteOncenfs:path: /root/helm/shareserver: 192.168.2.150
[root@k8s-master helm]# ll
total 15660
-rw-r--r-- 1 root    root   16028423 Aug 11  2023 helm-v3.12.3-linux-amd64.tar.gz
drwxr-xr-x 2    1001 docker       50 Aug 11  2023 linux-amd64
-rw-r--r-- 1 root    root        191 Mar 17 10:13 mysql-pv.yaml
drwxr-xr-x 5 polkitd root        314 Mar 17 14:59 share
[root@k8s-master helm]# cat /etc/exports
/root/helm/share 192.168.2.0/24(rw,no_root_squash)
​
[root@k8s-master helm]# kubectl  get pvc,pv
NAME                             STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
persistentvolumeclaim/my-mysql   Bound    mysql    8Gi        RWO                           4h29m
​
NAME                     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM              STORAGECLASS   REASON   AGE
persistentvolume/mysql   8Gi        RWO            Retain           Bound    default/my-mysql                           4h23m
​
​
[root@k8s-master helm]# kubectl  get pods    #pod运行起来了
NAME                       READY   STATUS    RESTARTS   AGE
my-mysql-b6999b8b5-h6vlr   1/1     Running   0          4h30m

(3)获取临时密码并进入pod测试是否能够登录  

[root@k8s-master helm]# kubectl get secret --namespace default my-mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo
dwcyEybl7l
​
[root@k8s-master helm]# kubectl  get pods,svc 
NAME                           READY   STATUS    RESTARTS   AGE
pod/my-mysql-b6999b8b5-h6vlr   1/1     Running   0          4h34m
​
NAME                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
service/kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP    4h35m
service/my-mysql     ClusterIP   10.106.24.9   <none>        3306/TCP   4h34m
[root@k8s-master helm]# kubectl exec -it my-mysql-b6999b8b5-h6vlr -- /bin/bash 
Defaulted container "my-mysql" out of: my-mysql, remove-lost-found (init)
root@my-mysql-b6999b8b5-h6vlr:/# mysql -uroot -p'dwcyEybl7l'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3245
Server version: 5.7.30 MySQL Community Server (GPL)
​
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)
​
mysql>
​
​
[root@k8s-master helm]# kubectl  get pods -o wide
NAME                       READY   STATUS    RESTARTS   AGE     IP             NODE        NOMINATED NODE   READINESS GATES
my-mysql-b6999b8b5-h6vlr   1/1     Running   0          4h37m   10.244.36.65   k8s-node1   <none>           <none>
#在k8s-node1这个node上进行登录测试
[root@k8s-node1 ~]# mysql -h 10.106.24.9 -P3306 -uroot -p   #使用my-mysql的clusterip+端口
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 3226
Server version: 5.7.30 MySQL Community Server (GPL)
​
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

(4)集群外部navicat也可登录的配置测试

[root@k8s-master helm]# kubectl edit svc my-mysql  #将svc的type改为NodePort,如果还有特定端口需求请自行添加指定端口号
service/my-mysql edited
[root@k8s-master helm]# kubectl  get svc
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP          4h42m
my-mysql     NodePort    10.106.24.9   <none>        3306:31641/TCP   4h41m

使用k8s-node1的宿主机地址+nodeport映射的端口号登录

 

 

2.自定义chart安装

通过-f指定yaml配置文件或者在命令行通过set来设定安装前你需要指定的参数,请注意,以下的my-mysql-config.yaml等内容都是可以在helm show values stable/mysql中查询到的

(1)同样是定义好nfs共享存储信息和所需pv

[root@k8s-master helm]# tail -1 /etc/exports
/root/helm/share1 192.168.2.0/24(rw,no_root_squash)
[root@k8s-master helm]# kubectl  apply -f mysql-pv.yaml 
persistentvolume/mysql created
[root@k8s-master helm]# kubectl  get pv 
NAME    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
mysql   8Gi        RWO            Retain           Available                                   10s

(2)创建好要自定义的参数等

[root@k8s-master helm]# cat my-mysql-config.yaml 
persistence:enabled: trueaccessMode: ReadWriteOncesize: 8Gi
mysqlUser: "sulibao"
mysqlPassword: "sulibao"
mysqlRootPassword: "sulibao"
mysqlDatabase: "k8s"
​
[root@k8s-master helm]# helm install my-mysql -f my-mysql-config.yaml stable/mysql  #pod直接运行成功
[root@k8s-master helm]# kubectl  get pods,svc
NAME                            READY   STATUS    RESTARTS   AGE
pod/my-mysql-56856b55c7-cj76j   1/1     Running   0          60s
​
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
service/kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP    5h6m
service/my-mysql     ClusterIP   10.103.197.187   <none>        3306/TCP   60s

(3)进入pod测试配置的参数是否正确

[root@k8s-master helm]# kubectl exec -it my-mysql-56856b55c7-cj76j -- /bin/bash
Defaulted container "my-mysql" out of: my-mysql, remove-lost-found (init)
​
root@my-mysql-56856b55c7-cj76j:/# mysql -uroot -psulibao
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 47
Server version: 5.7.30 MySQL Community Server (GPL)
​
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| k8s                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)
​
mysql> select user from mysql.user;
+---------------+
| user          |
+---------------+
| root          |
| sulibao       |
| mysql.session |
| mysql.sys     |
| root          |
+---------------+
5 rows in set (0.01 sec)
​
mysql> 

(4)此外是可以通过set来进行替换参数的

如上使用yaml文件进行安装的就可以改为这样

[root@k8s-master helm]# helm install my-mysql \
> --set persistence.enabled=true \
> --set persistence.size=8Gi \
> --set mysqlUser="sulibao" \
> --set mysqlPassword="sulibao" \
> --set mysqlRootPassword="sulibao" \
> --set mysqlDatabase="k8s" stable/mysql

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

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

相关文章

13. C++类的简单理解

全面理解C中的类 1. 类的访问属性&#xff1a;public&#xff0c;protect&#xff0c;private C中类的成员变量和函数都带有三种属性中的一种&#xff0c;假如没有特别声明&#xff0c;那么就默认是私有的&#xff08;除了构造函数&#xff09;。public表示是公开的&#xff…

[WUSTCTF2020]颜值成绩查询 --不会编程的崽

这题也是一个很简单的盲注题目&#xff0c;这几天sql与模板注入做麻了&#xff0c;也是轻松拿捏。 它已经提示&#xff0c;enter number&#xff0c;所有猜测这里后台代码并没有使用 " 闭合。没有明显的waf提示&#xff0c; 但是or&#xff0c;and都没反应。再去fuzz一…

二叉树OJ练习

本文旨在讲解有关二叉树的OJ题目&#xff0c;希望读完本文&#xff0c;能让读者都二叉树有更深一步的认识&#xff01; 正文开始&#xff01; 106. 根据二叉树创建字符串 算法思想&#xff1a; 根据题目的输出结果&#xff0c;可以观察出如下规律&#xff01; 1.若左右结点都…

Spring Boot整合STOMP实现实时通信

目录 引言 代码实现 配置类WebSocketMessageBrokerConfig DTO 工具类 Controller common.html stomp-broadcast.html 运行效果 完整代码地址 引言 STOMP&#xff08;Simple Text Oriented Messaging Protocol&#xff09;作为一种简单文本导向的消息传递协议&#xf…

sqllab第二十七A关通关笔记

知识点&#xff1a; 双引号闭合union select 大小写绕过 Union Select这里不能进行错误注入&#xff0c;无回显 经过测试发现这是一个双引号闭合 构造payload:id1"%09and%091"1 页面成功回显 构造payload:id0"%09uNion%09SElect%091,2,3%09"1 页面成功…

在雄安新区买新房要注意什么?有哪些注意事项?

雄安新区新建住宅均价每平方米11735元起&#xff0c;二手房每平方米8950元起。 整体价格非常有优势。 雄安新区房价走势与区域发展直接相关。 而且&#xff0c;雄安新区已经成立五周年了。 2022年&#xff0c;雄安新区多项重点项目将陆续竣工。 雄安新区城市基础设施建设已初具…

Linux之shell循环

华子目录 for循环带列表的for循环格式分析示例shell允许用户指定for语句的步长&#xff0c;格式如下示例 不带列表的for循环示例 基于C语言风格的for循环格式示例注意 while循环格式示例 until循环作用格式示例 循环控制breakcontinue详细语法示例 循环嵌套示例 for循环 for循…

深度学习——SAM(Segment-Anything)代码详解

目录 引言代码目录segment-anything 代码详解build_sam.pypredictor.pyautomatic_mask_generator.py 引言 从去年年初至今&#xff0c;SAM(Segment Anything )已经问世快一年了&#xff0c;SAM凭借其强大而突出的泛化性能在各项任务上取得了优异的表现&#xff0c;广大的研究者…

源码编译部署LAMP

编译部署LAMP 配置apache [rootzyq ~]#: wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz --2023-12-11 14:35:57-- https://downloads.apache.org/apr/apr-1.7.4.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 135.181.214.104…

BUUCTF-WEB1

[ACTF2020 新生赛]Exec1 1.打开靶机 是一个ping命令 2.利用管道符“|” ping一下本地主机并查看ls ping 127.0.0.1 | ls 可以看到回显的内容是一个文件 127.0.0.1 | cat index.php #查看主机下index.php 127.0.0.1 | ls / #查看主机根目录下的文件 看的一个flag文件 …

数据仓库数据分层详解

数据仓库中的数据分层是一种重要的数据组织方式&#xff0c;其目的是为了在管理数据时能够对数据有一个更加清晰的掌控。以下是数据仓库中的数据分层详解&#xff1a; 原始数据层&#xff08;Raw Data Layer&#xff09;&#xff1a;这是数仓中最底层的层级&#xff0c;用于存…

jupyter闪退和自动跳转问题

1.闪退问题 当我们点击jupyter时&#xff0c;它会闪一下&#xff0c;然后无法进入&#xff0c;这个时候我们可以去prompt命令行输入jupyter notebook启动试试&#xff0c;如果还不行&#xff0c;我们可以根据报错去解决&#xff0c;一般csdn上都有对应情况&#xff0c;直接搜索…

Linux-新手小白速秒Hadoop集群全生态搭建(图文混编超详细)

在之前的文章中&#xff0c;我教会大家如何一步一步搭建一个Hadoop集群&#xff0c;但是只提供了代码&#xff0c;怕有些朋友会在一些地方产生疑惑&#xff0c;今天我来以图文混排的方式&#xff0c;一站式交给大家如何搭建一个Hadoop高可用集群包括&#xff08;HadoopHA&#…

el-select使用filterable下拉无法关闭得问题

这里推荐一个前端框架 sakuya / SCUI&#xff0c;他里面有个formTable&#xff0c;可以解决很多订单明细保存得问题。基本沿用element-plus的前端使用模式&#xff0c;让表单表格变的非常容易。 这个的供应商插件&#xff0c;当使用filterable后&#xff0c;点击表格重的选项&…

Redis Desktop Manager:一站式Redis数据库管理与优化

Redis Desktop Manager是一款功能强大的Redis桌面管理工具&#xff0c;也被称作Redis可视化工具。以下是其主要的功能特色&#xff1a; 连接管理&#xff1a;Redis Desktop Manager支持连接多个Redis服务器&#xff0c;用户可以在同一界面下管理多个数据库&#xff0c;大大提高…

记录一下在Pycharm中虚拟环境的创建

如果在Pycharm中要新建一个虚拟环境&#xff0c;那你可以在Terminal中选择Command Prompt&#xff0c;在这里面执行相关命令 一、安装了Anaconda&#xff0c;创建虚拟环境 当你使用解释器是Anaconda提供的时&#xff0c;你可以使用conda命令执行&#xff0c;见以下操作&#x…

前端Vue与uni-app中的九宫格、十二宫格和十五宫格菜单组件实现

在前端 Vue 开发中&#xff0c;我们经常会遇到需要开发九宫格、十二宫格和十五宫格菜单按钮的需求。这些菜单按钮通常用于展示不同的内容或功能&#xff0c;提供给用户快速访问和选择。 一、引言 在前端开发中&#xff0c;九宫格、十二宫格和十五宫格菜单按钮是一种常见的布局…

202206 CSP认证 | 角色授权

角色授权 fine&#xff0c;又是一道acwing上TLE但是平台通过了的&#xff0c;那就酱吧… 直接跟着题目来模拟的…先找到每个用户授予的所有角色&#xff0c;包括用户本身和它所属的用户组。 然后遍历这个角色集合&#xff0c;看是否有操作权限&#xff0c;种类权限以及资源名称…

SVN修改已提交版本的注释

目录 一、需求分析 二、问题分析 三、解决办法 一、需求分析 ​开发过程中&#xff0c;在SVN提交文件后&#xff0c;发现注释写的不完整或不够明确&#xff0c;想再修改之前的注释文字​。 使用环境&#xff1a; SVN服务器操作系统&#xff1a;Ubuntu 20.04.6 LTS SVN版本&…

JVM实战篇

内存调优 内存溢出和内存泄漏 内存泄漏&#xff1a;在java中如果不再使用一个对象&#xff0c;但是该对象依然在GC ROOT的引用链上&#xff0c;这个对象就不会被垃圾回收器回收。 内存泄漏绝大多数情况都是由堆内存泄漏引起的&#xff0c;所以后续没有特别说明则讨论的都是堆…