CI/CD持续集成和持续部署以及相关软件的使用

news2024/11/16 12:01:10

目录

一:CI/CD是什么?

1.1 持续集成(Continuous Integration)

1.2 持续部署(Continuous Deployment)

1.3 持续交付(Continuous Delivery)

CI/CD 的好处包括:

二:git工具

git简介

git工作流程

三:部署git

四:gitlab的部署搭建

gitlab简介

部署gitlab

配置gitlab

添加密钥

​编辑jenkins

部署jenkins

删除jenkins

jenkins和gitlab的整合方法


一:CI/CD是什么?

CI/CD 是指持续集成(Continuous Integration)和持续部署(Continuous Deployment)或持续交付(Continuous Delivery)

1.1 持续集成(Continuous Integration)

持续集成是一种软件开发实践,团队成员频繁地将他们的工作集成到共享的代码仓库中。其主要特点包括:

  1. 频繁提交代码:开发人员可以每天多次提交代码,确保代码库始终保持最新状态。

  2. 自动化构建:每次提交后,自动触发构建过程,包括编译、测试、静态分析等。

  3. 快速反馈:如果构建失败或测试不通过,能够快速地向开发人员提供反馈,以便及时修复问题。

1.2 持续部署(Continuous Deployment)

持续部署是在持续集成的基础上,将通过所有测试的代码自动部署到生产环境中。其特点如下:

  1. 自动化流程:从代码提交到生产环境的部署完全自动化,无需人工干预。

  2. 高频率部署:可以实现频繁的部署,使得新功能能够快速地提供给用户。

  3. 风险控制:需要有强大的测试和监控体系来确保部署的稳定性和可靠性。

1.3 持续交付(Continuous Delivery)

持续交付与持续部署类似,但不一定自动部署到生产环境,而是随时可以部署。其重点在于确保软件随时处于可发布状态。

CI/CD 的好处包括:

  1. 提高开发效率:减少手动操作和等待时间,加快开发周期。

  2. 尽早发现问题:通过频繁的集成和测试,问题能够在早期被发现和解决。

  3. 降低风险:减少了大规模部署时可能出现的问题,提高了软件的质量和稳定性。

  4. 增强团队协作:促进团队成员之间的沟通和协作,提高团队的整体效率。

常见的 CI/CD 工具包括 Jenkins、GitLab CI/CD、Travis CI 等。这些工具可以帮助团队实现自动化的构建、测试和部署流程。

CI/CD 的好处包括:

  • 1.提高开发效率:减少手动操作和等待时间,加快开发周期。

  • 2.尽早发现问题:通过频繁的集成和测试,问题能够在早期被发现和解决。

  • 3.降低风险:减少了大规模部署时可能出现的问题,提高了软件的质量和稳定性。

  • 4.增强团队协作:促进团队成员之间的沟通和协作,提高团队的整体效率。

常见的 CI/CD 工具包括Jenkins、GitLab 、CI/CD、Travis Cl等。这些工具可以帮助团队实现自动化的构建、测试和部署流程。

二:git工具

git简介

Git 是一个分布式版本控制系统,被广泛用于软件开发中,以管理代码的版本和变更。 主要特点:

  • 分布式

    • 每个开发者都有完整的代码仓库副本,这使得开发者可以在离线状态下进行工作,并且在网络出现问题时也不会影响开发。

    • 即使中央服务器出现故障,开发者仍然可以在本地进行开发和查看项目历史。

  • 高效的分支管理

    • Git 中的分支创建和切换非常快速和简单。开发人员可以轻松地创建新的分支来进行新功能的开发或修复 bug,而不会影响主分支。

    • 合并分支也相对容易,可以使用多种合并策略来满足不同的需求,

  • 快速的版本回退

    • 如果发现某个版本存在问题,可以快速回退到之前的版本

    • 可以查看每个版本的详细变更记录,方便了解代码的演进过程。

  • 强大的提交管理

    • 每个提交都有一个唯一的标识符,可以方便地引用和查看特定的提交。

    • 提交可以包含详细的提交信息,描述本次提交的更改内容。

  • 支持协作开发

    • 开发者可以将自己的更改推送到远程仓库,供其他开发者拉取和合并。

    • 可以处理多个开发者同时对同一文件进行修改的情况,通过合并冲突解决机制来确保代码的完整性。

Git必看秘籍:https://git-scm.com/book/zh/v2

git工作流程

工作区---->暂存区---->代码库

每一步都可以撤销

Git 有三种状态:已提交(committed)、已修改(modified)和已暂存(staged)

  • 已修改表示修改了文件,但还没保存到数据库中。

  • 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

  • 已提交表示数据已经安全地保存在本地数据库中。

这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。

三:部署git

#rhel9自带,直接下载
[root@gitlab ~]# dnf install git -y
[root@gitlab ~]# mkdir example
[root@gitlab ~]# cd example/

#初始化命令
[root@gitlab example]# git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <name>
hint: 
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint: 
hint: 	git branch -m <name>
Initialized empty Git repository in /root/example/.git/

#在 Git 中全局设置你的电子邮件地址的。这里的“全局”意味着这个设置会应用于你机器上所有的 Git 仓库,直到你更改它为止。
#git config:这是 Git 中用来配置 Git 设置的命令。通过它可以设置各种 Git 相关的参数,比如用户信息、仓库的默认行为等。
#--global:这个选项指定了接下来的设置应该被应用到全局配置文件中,而不是当前仓库的配置文件。全局配置文件通常位于你的用户主目录下的 
#user.email:这是你想要设置的配置项的名称。Git 使用这个配置项来记录你的电子邮件地址,这个地址会出现在你提交(commit)到仓库的每一次更改的记录中。这对于多人协作的项目非常有用,因为它帮助识别是谁做了哪些更改。
[root@gitlab example]# git config --global user.email "lee@example.org"


#不要随便修改这个隐藏文件
[root@gitlab example]# ls -a
.  ..  .git
[root@gitlab example]# ls .git/
branches  config  description  HEAD  hooks  info  objects  refs

#在工作区域开始工作
[root@gitlab example]# echo example > README.md
[root@gitlab example]# git status 
On branch master

No commits yet               #没有需要提交的东西

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	README.md

nothing added to commit but untracked files present (use "git add" to track)

# ??表示这个项目库里没有这个项目
[root@gitlab example]# git status -s
?? README.md
#添加这个项目
[root@gitlab example]# git add README.md 
#查看状态  左A:添加到暂存区  右A
[root@gitlab example]# git status -s
A  README.md

#git commit表示把代码提交到代码库    -m表示说明
[root@gitlab example]# git commit -m "add README.md"
[master (root-commit) 0e71d1c] add README.md
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
 #没有信息,表示提交成功
[root@gitlab example]# git status -s

#修改代码
[root@gitlab example]# echo >> README.md
#查看状态   右A:修改但是没有提交
[root@gitlab example]# git status -s
 M README.md
[root@gitlab example]# git add README.md
#左A:提交到暂存区
[root@gitlab example]# git status -s
M  README.md
#提交 备注v2
[root@gitlab example]# git commit -m "README.md v2"
[master 23525ab] README.md v2
 1 file changed, 2 insertions(+)
 #没有信息,表示提交成功
[root@gitlab example]# git status -s

撤销 工作区 内容 checkout

[root@gitlab example]# vim README.md 
[root@gitlab example]# git status -s
 M README.md
 #撤销这次工作内容的修改
[root@gitlab example]# git checkout -- README.md
[root@gitlab example]# cat README.md 
example

撤回 暂存区 内容 git restore --staged

[root@gitlab example]# echo example >> README.md 
[root@gitlab example]# git add README.md 
[root@gitlab example]# git status -s
M  README.md

[root@gitlab example]# git restore --staged README.md 
[root@gitlab example]# git status -s
 M README.md
[root@gitlab example]# 
[root@gitlab example]# git add README.md 
[root@gitlab example]# git status -s
M  README.md

版本回溯

[root@gitlab example]# git rm -f  README.md 
rm 'README.md'
[root@gitlab example]# git status -s
D  README.md
[root@gitlab example]# git commit -m "delete README.md"
[master 4250726] delete README.md
 1 file changed, 3 deletions(-)
 delete mode 100644 README.md

#查看日志
[root@gitlab example]# git log
commit 4250726ca77c7bfc24028491b2da511936c15cd1 (HEAD -> master)
Author: root <lee@example.org>
Date:   Fri Sep 13 09:57:03 2024 +0800

    delete README.md

commit 23525ab2207ff7942a7e183736d086b70861e725
Author: root <lee@example.org>
Date:   Fri Sep 13 00:54:08 2024 +0800

    README.md v2

commit 0e71d1ca06d09728360d1f5a96ee0b21f5cda5a6
Author: root <lee@example.org>
Date:   Thu Sep 12 11:29:20 2024 +0800

    add README.md

#显示历史记录
[root@gitlab example]# git reflog
4250726 (HEAD -> master) HEAD@{0}: commit: delete README.md
23525ab HEAD@{1}: commit: README.md v2
0e71d1c HEAD@{2}: commit (initial): add README.md

#回溯历史版本,用于将当前分支的 HEAD 指针重置到指定状态,同时重置暂存区和工作目录以匹配该状态。
[root@gitlab example]# git reset --hard 23525ab
HEAD is now at 23525ab README.md v2
[root@gitlab example]# ls
README.md

编译文件

[root@gitlab example]# cd /mnt
[root@gitlab mnt]# vim hello.c
#include<stdio.h>
main()
{
  print("hello example\n");
}
[root@gitlab mnt]# dnf install gcc -y

#编译文件
[root@gitlab mnt]# gcc hello.c -o hello
hello.c:2:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
    2 | main()
      | ^~~~
[root@gitlab mnt]# ./hello
hello example

git对文件如何忽略

[root@gitlab mnt]# cd /root/example/
[root@gitlab example]# ls
README.md
[root@gitlab example]# touch .lee
[root@gitlab example]# ls
README.md
[root@gitlab example]# mkdir lee
[root@gitlab example]# touch lee/.lee
[root@gitlab example]# ls
lee  README.md
[root@gitlab example]# git status -s
?? .lee
?? lee/
[root@gitlab example]# ls
lee  README.md

#开始编写忽略文件
[root@gitlab example]# vim .gitignore
.*
#没有了
[root@gitlab example]# git status -s

四:gitlab的部署搭建

gitlab简介

  • Gitlab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。

  • GitLab 具有很多功能,比如代码托管、持续集成和持续部署(CI/CD)、问题跟踪、合并请求管理等。它可以帮助开发团队更好地协作开发软件项目,提高开发效率和代码质量。

官网:https://about.gitlab.com/install/ 中文站点:GitLab下载安装_GitLab安装和配置_GitLab最新中文官网免费版下载-极狐GitLab 官方包地址:gitlab/gitlab-ce - Packages · packages.gitlab.com

部署gitlab

[root@gitlab ~]# yum install curl policycoreutils-python-utils openssh-server perl -y
[root@gitlab ~]# dnf instal1 gitlab-ce-17.1.6-ce.0.e19.x86_64.rpm -y

配置gitlab

[root@gitlab ~]# cd /etc/gitlab/
#修改一下,不做解析
[root@gitlab gitlab]# vim gitlab.rb 
external_url 'http://172.25.254.80'

#修改配置文件后需利用gitlab-crt来生效
#执行命令成功后会把所有组件全部启动起来
[root@gitlab ~]# gitlab-ctl reconfigure

#查看密码
[root@gitlab gitlab]# cat initial_root_password 
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: p1FAEMCwl8xBElqh43cqJpwpfHHwl6DfCEkbKqzfCj0=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
#添加key
[root@gitlab ~]# ssh-keygen

#查看密钥
[root@gitlab ~]# cd .ssh/
[root@gitlab .ssh]# ls
id_rsa  id_rsa.pub  known_hosts  known_hosts.old
[root@gitlab .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCrlTBBQW1QOipFBrAbsF5fek1hYM1xetMMln4tWVOtOeAY2lvd1HEwfbjBE4e8DACyC14Soowl4djs42TvelxYyiwyOkkB5uTtIhZxmju9hsj8e1fHOrbIgQ5l5cy8M2YCgBnWEAYYyDuf11t3aWYvdr4rM13lyMR9TeH51lI1ls5iI3Q9l/TfV9h4NvOolpDvxBPeRTVg6bvj0ukqn0lOiKtZ5jgCqsU4Tf6xIc2p+JKEt2xVltSpAJsFTFXFjba4aX/7W4vMbIdX6Yn+nBYnWRtho+7FG2AneCGQVtkyfadEDqJxnGcXXWO8ElZ2rzlimD9HSNJqz1MQDjyBKbAeqM1FNbzSIU+WhuDs4YuDnf0ahXrXgaYoD/RxrQLxNaFh1oD5ECR1YkZu3GKE2FXC5R+DXQOKjK8ti5T7OYGCKw813GE/29xdoffWMFJgRsw9z4NS8skZ+QDVRq3HkfJ3Hu7MlwMHSlaeezS5r6e2udVbyhzAfzWCvunYv7BYKOM= root@gitlab.example.org

添加密钥

#克隆
[root@gitlab ~]# git clone git@172.25.254.80:root/example.git
Cloning into 'example'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (3/3), done.
[root@gitlab ~]# 

#添加文件
[root@gitlab ~]# cd example/
[root@gitlab example]# ls
README.md
[root@gitlab example]# echo example > example
[root@gitlab example]# ls
example  README.md
[root@gitlab example]# git add example 
[root@gitlab example]# git commit -m "add example"
[main 3667b4d] add example
 1 file changed, 1 insertion(+)
 create mode 100644 example
[root@gitlab example]# git push -u origin main
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 270 bytes | 270.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To 172.25.254.80:root/example.git
   7a85c1b..3667b4d  main -> main
branch 'main' set up to track 'origin/main'.
​

jenkins

部署jenkins

[root@jenkins ~]# cat /etc/hosts
172.25.254.90   jenkins.example.org
172.25.254.80   gitlab.example.org
​
#安装依赖包
[root@jenkins ~]# yum install fontconfig java-17-openjdk git -y
 #安装软件 
[root@jenkins ~]# dnf install jenkins-2.462.2-1.1.noarch.rpm 
​
#启动jenkins
[root@jenkins ~]# systemctl enable --now jenkins.service 
​
#查看原始密码
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

删除jenkins

[root@jenkins ~]# systemctl stop jenkins.service 
[root@jenkins ~]# rm -rf /var/lib/jenkins/*
[root@jenkins ~]# systemctl start jenkins.service 

jenkins和gitlab的整合方法

大致思路:

在jenkins里面新建一个项目,然后复制git仓库的地址

在jenkins主机里面创建密钥,添加到gitlab里面

在jenkins添加密钥凭据,把本机的sshd的私钥加入 id_isa

#依旧存在报错:地址解析  以及ssh首次链接主机需要签名认证,手动输入yes
[root@jenkins ~]# vim /etc/ssh/ssh_config
Host *
        StrictHostKeyChecking no

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

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

相关文章

Holynix: v1

确认物理地址 00:0C:29:BC:05:DE ip扫描 arp-scan -l 端口扫描 nmap 192.168.48.167 访问一下80端口 burp抓包 找到一个登录框 想着burp抓包试试 将抓到的包放入kali中的文件中使用sqlmap注入试试 sqlmap 存在sql注入 sqlmap -r password --batch --random-agent 发现…

电脑提示丢失mfc140u.dll的详细解决方案,mfc140u.dll文件是什么

遇到电脑显示“缺少 mfc140u.dll 文件”的错误其实是比较常见的。这种提示通常表示某个应用程序在尝试运行时未能找到它所需的关键 DLL 文件&#xff0c;导致无法正常启动。不过&#xff0c;别担心&#xff0c;本文将一步步引导你通过几种不同的方法来解决这个问题&#xff0c;…

【红动中国-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

AV1 Bitstream Decoding Process Specification--[3]:约定

原文地址&#xff1a;https://aomediacodec.github.io/av1-spec/av1-spec.pdf没有梯子的下载地址&#xff1a;AV1 Bitstream & Decoding Process Specification摘要&#xff1a;这份文档定义了开放媒体联盟&#xff08;Alliance for Open Media&#xff09;AV1视频编解码器…

DebateGPT:通过多智能体辩论监督微调大模型

人工智能咨询培训老师叶梓 转载标明出处 这些模型的训练通常依赖于资源密集型的人工反馈&#xff0c;这不仅成本高昂&#xff0c;而且耗时。为了解决这一问题&#xff0c;一篇名为《FINE-TUNING LARGE LANGUAGE MODELS WITH MULTI-AGENT DEBATE SUPERVISION》的论文提出了一种…

Sybase「退役」在即,某公共卫生机构如何实现 SAP Sybase 到 PostgreSQL 的持续、无缝数据迁移?

使用 TapData&#xff0c;化繁为简&#xff0c;摆脱手动搭建、维护数据管道的诸多烦扰&#xff0c;轻量替代 OGG, Kettle 等同步工具&#xff0c;以及基于 Kafka 的 ETL 解决方案&#xff0c;「CDC 流处理 数据集成」组合拳&#xff0c;加速仓内数据流转&#xff0c;帮助企业…

表单标记form

1.form:表单域标记&#xff0c;表示表单范围&#xff0c;所有的表单元素必须放进form标记中 2.input:用来设置表单输入元素&#xff0c;<input>元素根据不同的属性&#xff0c;可以有多种形式&#xff0c;如文本框&#xff08;text&#xff09;,密码框&#xff08;passw…

Maven入门学习笔记

一、maven介绍 Maven是一款自动化构建工具&#xff0c;专注服务于JAVA平台的项目构建和依赖管理。在javaEE开发的历史上构建工具的发展也经历了一系列的演化和变迁。 管理jar包 当我们使用SSM之后我们就需要使用非常多的jar包 没有maven找jar包非常的麻烦。 使用maven下载…

一次开发,多端部署--实例介绍

一、自适应布局 1、拉伸能力 容器组件尺寸发生变化时&#xff0c;增加或减小的空间全部分配给容器组件内指定区域。 Row() {// 通过flexGrow和flexShrink属性&#xff0c;将多余的空间全部分配给图片&#xff0c;将不足的控件全部分配给两侧的空白区域Row().width(150).flexG…

【代码随想录训练营第42期 Day57打卡 - 图论Part7 - Prim算法与Kruskal算法

目录 一、Prim算法 二、题目与题解 题目&#xff1a;卡码网 53. 寻宝 题目链接 题解1&#xff1a;Prim算法 题解2&#xff1a;Prim算法优化 题解3&#xff1a;Kruskal算法 三、小结 一、Prim算法与Kruskal算法 Prim算法是一种贪心算法&#xff0c;用于求解加权无向图的…

差分约束---将不等式转换为图的算法

概念&#xff1a;已知一个差分约束系统&#xff08;差分约束系统即一种特殊的n元一次不等式组&#xff09;&#xff0c;形如,要求求出是否存在一组解使得所有约束条件满足。由于在最短路中与该不等式形式相似&#xff0c;因此&#xff0c;可以利用图论&#xff0c;从对应的j点连…

探索Web3前沿:革新性算力共享平台,重塑数字资源利用新时代

基于Web3的算力共享平台 随着区块链技术的不断发展和Web3.0时代的到来,算力共享平台逐渐成为推动数字经济和人工智能发展的重要力量。基于Web3的算力共享平台通过去中心化、分布式网络等技术手段,实现了算力的高效、透明和安全的共享,为人工智能、科学研究、艺术创作等多个…

Kamailio-基于Homer与heplify的SIP信令监控-1

接上篇Kamailio监控&#xff0c;对Kamailio的一个基础监控有了一定的概念&#xff0c;但是光看数字如果发现问题&#xff0c;要如何回顾解决呢&#xff1f;生产环境不能随时随地抓包来确定链路的正常与否。 这个时候 Sipcapture 公司推出了Homer这个开源软件&#xff0c;目前G…

【软件测试】常用的开发、测试模型

哈喽&#xff0c;哈喽&#xff0c;大家好~ 我是你们的老朋友&#xff1a;保护小周ღ 今天给大家带来的是 【软件测试】常用的开发、测试模型&#xff0c;首先了解, 什么是软件的生命周期, 测试的生命周期, 常见的开发模型: 瀑布, 螺旋, 增量, 迭代, 敏捷. 常用的测试模型, …

银河麒麟桌面系统卸载应用报错快速解决

银河麒麟桌面系统卸载应用报错快速解决 1、问题简述2、解决方案步骤 1: 删除dpkg信息步骤 2: 强制卸载步骤 3: 验证与清理 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、问题简述 在银河麒麟桌面系统中卸载应用时&#xff0c;可能会遇…

AE 让合成重复循环播放

在合成上点右键 > Time > Enable Time Remapping 按住 Alt 键&#xff0c;点秒表图标 输入 loop_out("cycle", 0) 将子合成拖到此合成结束的位置 结束

Linux 上自动下载 Docker 依赖并离线安装的完整指南

Linux 上自动下载 Docker 依赖并离线安装的完整指南 文章目录 Linux 上自动下载 Docker 依赖并离线安装的完整指南一 添加软件源二 更新 yum 缓存三 下载依赖四 打包 rpm 文件五 离线安装 这篇指南详细讲解了如何在CentOS 7.9系统上&#xff0c;通过 yum命令自动下载Docker的所…

vue3使用leaflet+trackplayer实现非地图动画轨迹(市场平面图动态轨迹)

vue3使用leaflettrackplayer实现非地图动画轨迹(市场平面图动态轨迹) 先下载 leaflet 和 leaflet-trackplayer两个主要库 leaflet官方文档 npm install leaflet npm install leaflet-trackplayer然后在页面中引用 html <template><button click"playMap&quo…

LLM - 理解 多模态大语言模型 (MLLM) 的指令微调与相关技术 (四)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142063880 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 完备(F…

第 12 篇 Helm 部署 Redis

文章目录 Redis Chart部署 Redis 单机版部署 Redis 哨兵版第 1 步&#xff1a;准备 values.yaml 配置文件第 2 步&#xff1a;安装 bitnami/redis第 3 步&#xff1a;解决 Pod Pending 问题查看 Pod 状态添加 PV 持久化卷创建 pv1创建 pv2创建 pv3 查看 Pod 状态 第 4 步&#…