Rancher 2.x+GitLab+k8s 搭建流水线

1、部署Rancher2.x

    (1)拉取镜像

            docker pull rancher/rancher:v2.2.8

    (2)创建映射卷

            mkdir -p /opt/docker/rancher/cni

            mkdir -p /opt/docker/rancher/kubelet

            mkdir -p /opt/docker/rancher/home

            mkdir -p /opt/docker/rancher/log

    (3)运行容器

            docker run --privileged -d --restart=unless-stopped -p 8888:80 -p 8443:443 \

            -v /opt/docker/rancher/cni:/var/lib/cni \

            -v /opt/docker/rancher/kubelet:/var/lib/kubelet \

            -v /opt/docker/rancher/home:/var/lib/rancher \

            -v /opt/docker/rancher/log:/var/log/log \

            --name rancher -e JAVA_OPTS="-Xmx1024m" rancher/rancher:v2.4.8

2、创建集群
在这里插入图片描述

点击添加集群按钮

选择自定义
在这里插入图片描述

输入集群名称
在这里插入图片描述

选择每个主机所需角色
在这里插入图片描述

注意:若有公网IP则必填,节点名称也必填,内网IP也必填

将对应链接复制到对应主机上运行即可,等待安装完成。
在这里插入图片描述

安装完成!

3、部署Gitlab,若使用在线的Gitlab则可忽略。

镜像名称:beginor/gitlab-ce:11.3.0-ce.0 (中文版)
在这里插入图片描述

映射主机路径

mkdir -p /opt/docker/gitlab/config mkdir -p /opt/docker/gitlab/logs mkdir -p /opt/docker/gitlab/data

对应容器映射路径

–v /opt/docker/gitlab/config:/etc/gitlab

–v /opt/docker/gitlab/logs :/var/log/gitlab

–v /opt/docker/gitlab/data:/var/opt/gitlab

4、部署docker私有仓库

参考Docker搭建私有仓库Registry.note命令部署自行在Rancher2.4.8上部署工作负载

5、部署maven私有仓库nexus

参考Docker搭建Mavne私有仓库.note命令部署自行在Rancher2.4.8上部署工作负载

5、打maven镜像

    (1)创建maven目录

            mkdir maven

    (2)进入目录

            cd maven

    (3)创建Dockerfile文件

            touch Dockerfile

    (4)编辑Dockerfile文件

            vi Dockerfile

            内容如下

            FROM maven:3.6.0-jdk-8-alpine COPY settings.xml /usr/share/maven/conf/

    (5)创建settings.xml文件

            内容如下

            <?xml version="1.0" encoding="UTF-8"?>

            <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"

            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0                 http://maven.apache.org/xsd/settings-1.0.0.xsd">

            <servers>

                    <server>

                            <id>nexus-releases</id>

                            <username>用户名</username> #用户名和密码根据自己配置的来修改

                            <password>密码</password>

                    </server>

            </servers>

            <mirrors>

                    <mirror>

                            <id>nexus-releases</id>

                            <mirrorOf>*</mirrorOf> #路径根据自己配置的来修改

                            <url>http://ip:端口/repository/maven-releases/</url>

                   </mirror>

             </mirrors>

            <profiles>

                    <profile>

                    <id>nexus</id>

                            <repositories>

                                    <repository>

                                            <id>nexus-releases</id>

                                            <url>http://nexus-releases</url>

                                            <releases><enabled>true</enabled></releases>

                                    </repository>

                            </repositories>

                    <pluginRepositories>

                            <pluginRepository>

                                    <id>nexus-releases</id>

                                    <url>http://nexus-releases</url>

                                    <releases><enabled>true</enabled></releases>

                            </pluginRepository>

                    </pluginRepositories>

                    </profile>

            </profiles>

            <activeProfiles>

                    <activeProfile>nexus</activeProfile>

            </activeProfiles>

            </settings>

    (6)制作镜像

            docker build -t 镜像名称:1.0.0 .

    (7)上传到私有仓库

            docker tag xxxxxx 私有仓库地址/镜像名称:1.0.0

            docker push xxxxxx 私有仓库地址/镜像名称:1.0.0

    6、创建流水线

进入集群应用界面,点击菜单:资源->流水线->设置代码库
在这里插入图片描述

点击认证&同步代码库
在这里插入图片描述

进入后选择Gitllab,然后需要在Gitlab里添加应用,把rancher的验证地址填好如图
在这里插入图片描述

然后会生成app_id和密码,将其填入rancher配置即可。若有代码库可查看到如图中信息,点击开启即打开流水线
在这里插入图片描述

点击编辑配置
在这里插入图片描述

上图为配置好的流水线步骤,分5步:

第一步:拉取代码,创建流水线时自带,不用创建

第二步:对拉取下的项目代码进行编译,需使用maven镜像(参考5、打maven镜像)
在这里插入图片描述

第三步:为了避免下次部署是端口及名称冲突,我选择先把服务删除(通过API升级方式暂未研究明白)
在这里插入图片描述

API可点击工作负载最右边操作按钮查看API,调用API需要用到访问密钥,需要自行添加
在这里插入图片描述

第四步:构建镜像及发布到私有仓库
在这里插入图片描述

需要编写Dockerfile文件,文件内容如下
在这里插入图片描述

镜像仓库选择需要先在资源->密文,点击镜像库凭证列表导航出添加镜像库凭证

没有设置登录认证的话不用填写用户名及密码。
在这里插入图片描述

注:若私有仓库没有使用https,需要自行修改流水线配置文件,在构建镜像节点出添加PLUGIN_DEBUG和PLUGIN_INSECURE参数。
在这里插入图片描述

第五步:部署服务,需要编写deployment.yaml(可以先部署服务,然后下载yaml,多余的可自行删除)。
在这里插入图片描述

完成后点击保存即可点击运行流水线。
在这里插入图片描述

运行完成后会自动部署服务!

<think>好的,用户之前问了关于Kubernetes多集群管理工具的问题,现在又转向询问KubeSphere是做什么的。我需要先确认KubeSphere的核心功能和定位。 首先,KubeSphere是一个容器平台,基于Kubernetes构建。用户可能已经了解过Kubernetes,但需要更上层的管理工具。之前提到的工具如Karmada、Rancher都是多集群管理,而KubeSphere可能在这些基础上提供更多功能。 接下来,用户可能想知道KubeSphere的主要用途。需要介绍它的主要模块,比如可视化界面、多集群管理、DevOps支持、应用商店、监控日志等。同时,要说明它适合的场景,比如企业级应用、混合云管理等。 还要注意用户可能的背景。他们可能正在寻找一个集成的解决方案,避免使用多个单独的工具。因此,强调KubeSphere的一体化优势,简化操作,适合不同规模团队,特别是那些需要简化K8s管理的用户。 需要对比之前提到的其他工具,比如Rancher也有可视化界面,但KubeSphere可能更全面,包含更多内置功能如服务网格、微服务治理等。同时,用户可能关心安装和社区支持,需要提到它支持多种部署方式和活跃的社区。 最后,确保回答结构清晰,分点列出核心功能、适用场景、架构优势等,帮助用户全面理解KubeSphere的作用,并做出合适的选择。</think>以下是关于 KubeSphere 容器平台的详细介绍,按功能模块分层说明其核心作用: --- ### 一、核心定位 KubeSphere 是**基于 Kubernetes 构建的开源容器平台**,提供 **"Kubernetes 上层操作系统"** 级别的能力,主要解决以下痛点: 1. 降低 K8s 使用门槛:通过图形化界面简化容器编排操作 2. 整合云原生工具链:预集成监控、日志、DevOps 等常用组件 3. 支持混合架构管理:统一纳管多云/本地/边缘 K8s 集群 --- ### 二、核心功能模块 #### 1. 可视化控制台 - **集群管理**:拓扑视图展示节点/Pod 状态,支持资源配额设置 示例:通过点击操作完成 `$ kubectl scale deployment` 等效功能 - **应用管理**:Helm Chart 可视化部署,支持应用全生命周期操作 - **存储管理**:集成 CSI 插件,提供持久卷声明 (PVC) 创建向导 #### 2. 多租户与权限 - **RBAC 增强**:支持企业级租户体系,实现项目/命名空间级隔离 典型场景:开发团队 A 仅能访问 `project-frontend` 命名空间 - **细粒度控制**:精确到 API 资源的权限分配(如 Pod 查看/删除) #### 3. DevOps 流水线 (内置 Jenkins) - **CI/CD 自动化**:图形化流水线编辑器,支持 GitOps 模式 示例流程: ```markdown 代码提交 → 单元测试 → 构建镜像 → 安全扫描 → 灰度发布 ``` - **SCM 集成**:原生支持 GitHub/GitLab/Gitee 等代码仓库 #### 4. 可观测性体系 - **监控告警**:集成 Prometheus,提供集群/应用级指标看板 指标示例:`$ container_cpu_usage_seconds_total` 实时可视化 - **日志收集**:通过 Fluent Bit 实现多集群日志聚合查询 - **审计追踪**:记录所有用户操作事件,满足合规要求 #### 5. 服务网格 (基于 Istio) - **流量治理**:金丝雀发布、熔断、流量镜像等高级功能 - **拓扑图谱**:自动生成微服务间调用关系图 #### 6. 应用商店 - **应用仓库**:提供 100+ 预验证的 Helm Chart 应用模板 - **自定义上架**:企业可构建私有应用仓库 --- ### 三、架构优势 1. **插件化设计** 核心系统仅 3 MB 镜像,通过 `ks-installer` 按需启用功能组件 2. **多云支持** 已验证适配 AWS EKS、Azure AKS、华为云 CCE 等主流云平台 3. **边缘计算** 通过 KubeEdge 扩展支持边缘节点管理(需单独部署) --- ### 四、典型使用场景 1. **企业级容器平台建设** 适合需要统一管理多个业务线 K8s 集群的中大型企业 2. **混合云/跨云管理** 通过多集群功能同时管控公有云和私有数据中心资源 3. **DevOps 效能提升** 内置工具链可缩短 40% 以上的 CI/CD 搭建时间(根据社区调研数据) --- ### 五、安装与生态 - **部署要求**: 最低配置:2 CPU / 4 GB 内存(适用于测试环境) 推荐配置:4 CPU / 8 GB 内存(生产环境) - **支持矩阵**: Kubernetes 版本:v1.19 ~ v1.25 操作系统:CentOS/RHEL/Ubuntu - **社区生态**: 贡献者来自青云科技、华为、微软等企业,2022 年进入 CNCF 全景图 --- ### 六、与同类产品对比 | 特性 | KubeSphere | Rancher | OpenShift | |--------------------|------------|---------|-----------| | 开源协议 | Apache 2.0 | Apache 2.0 | 商业许可 | | 图形化操作深度 | ★★★★☆ | ★★★☆☆ | ★★★★☆ | | 微服务治理能力 | 内置 Istio | 需插件 | 需 Service Mesh | | 边缘计算支持 | 通过扩展 | 无 | 无 | | 学习曲线 | 中等 | 低 | 高 | --- 建议从单集群测试环境开始体验,重点关注 **网络插件兼容性** 和 **存储配置** 等生产部署关键要素。对于已有 K8s 集群的用户,可采用 **最小化安装模式** 逐步启用所需功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值