赞
踩
流程说明:
帮助文档
快捷键目录标题文本样式列表链接代码片表格注脚注释自定义列表LaTeX 数学公式插入甘特图插入UML图插入Mermaid流程图插入Flowchart流程图插入类图
目录复制
容器化部署流程主要包含容器编排平台Kubesphere、源代码仓库Gitlab、容器镜像仓库Harbor。
KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,支持多云与多集群管理,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用 (plug-and-play) 的集成。
作为全栈化容器部署与多租户管理平台,KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。它拥有 Kubernetes 企业级服务所需的最常见功能,例如 Kubernetes 资源管理、DevOps、多集群部署与管理、应用生命周期管理、微服务治理、日志查询与收集、服务与网络、多租户管理、监控告警、事件审计、存储、访问控制、GPU 支持、网络策略、镜像仓库管理以及安全管理等。
KubeSphere 围绕 Kubernetes 集成了各种生态系统的工具,提供了一致的用户体验以降低复杂性。同时,它还具备 Kubernetes 尚未提供的新功能,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。KubeSphere 不仅允许开发人员和 DevOps 团队在统一的控制台中使用他们喜欢的工具,而且最重要的是,这些功能与平台松散耦合,因为他们可以选择是否安装这些可拔插组件。
ks-apiserver 整个集群管理的 API 接口和集群内部各个模块之间通信的枢纽,以及集群安全控制。
ks-console 提供 KubeSphere 的控制台服务。
ks-controller-manager 实现业务逻辑的,例如创建企业空间时,为其创建对应的权限;或创建服务策略时,生成对应的 Istio 配置等。
metrics-server Kubernetes 的监控组件,从每个节点的 Kubelet 采集指标信息。
Prometheus 提供群集,节点,工作负载,API对象的监视指标和服务。
Elasticsearch 提供集群的日志索引、查询、数据管理等服务,在安装时也可对接您已有的 ES 减少资源消耗。
Fluent Bit 提供日志接收与转发,可将采集到的⽇志信息发送到 ElasticSearch、Kafka。
Jenkins 提供 CI/CD 流水线服务。
SonarQube 可选安装项,提供代码静态检查与质量分析。
Source-to-Image 将源代码自动将编译并打包成 Docker 镜像,方便快速构建镜像。
Istio 提供微服务治理与流量管控,如灰度发布、金丝雀发布、熔断、流量镜像等。
Jaeger 收集 Sidecar 数据,提供分布式 Tracing 服务。
OpenPitrix 提供应用程序生命周期管理,例如应用模板、应用部署与管理的服务等。
Alert 提供集群、Workload、Pod、容器级别的自定义告警服务。
Notification 是一项综合通知服务; 它当前支持邮件传递方法。
Redis 将 ks-console 与 ks-account 的数据存储在内存中的存储系统。
MySQL 集群后端组件的数据库,监控、告警、DevOps、OpenPitrix 共用 MySQL 服务。
PostgreSQL SonarQube 和 Harbor 的后端数据库。
OpenLDAP 负责集中存储和管理用户账号信息与对接外部的 LDAP。
Storage 内置 CSI 插件对接云平台存储服务,可选安装开源的 NFS/Ceph/Gluster 的客户端。
Network 可选安装 Calico/Flannel 等开源的网络插件,支持对接云平台 SDN。
什么是 KubeSphere DevOps 系统
基于 Jenkins 的 KubeSphere DevOps 系统是专为 Kubernetes 中的 CI/CD 工作流设计的,它提供了一站式的解决方案,帮助开发和运维团队用非常简单的方式构建、测试和发布应用到 Kubernetes。它还具有插件管理、Binary-to-Image (B2I)、Source-to-Image (S2I)、代码依赖缓存、代码质量分析、流水线日志等功能。
DevOps 系统为用户提供了一个自动化的环境,应用可以自动发布到同一个平台。它还兼容第三方私有镜像仓库(如 Harbor)和代码库(如 GitLab/GitHub/SVN/BitBucket)。它为用户提供了全面的、可视化的 CI/CD 流水线,打造了极佳的用户体验,而且这种兼容性强的流水线能力在离线环境中非常有用。
Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。是目前世界上最先进的分布式版本控制系统。
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,可以部署为本地私有化仓库。
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
基于角色的访问控制:用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
镜像复制:镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
图形化用户界面:用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
AD/LDAP:-Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
国际化:已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
RESTful API: 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
部署简单:提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。
本章节主要说明容器化平台所有组件的安装、配置。
服务器配置:2CPU,8GB内存,100GB硬盘,10Mbps带宽或更高配置。
操作系统:Centos7.8
需要考虑数据量的增加,代码仓库、容器镜像仓库应该支持很容易的扩容。
关闭防火墙、关闭selinux
服务器可以访问公网。
#1.ssh登录到服务器
#2.安装基础依赖
yum install -y curl policycoreutils-python openssh-server
#3.安装启动postfix用于发送通知邮件
yum install postfix
systemctl enable postfix
systemctl start postfix
#4.添加gitlab包依赖
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
#5.安装gitlab-ce社区开源版,默认安装到/opt/gitlab
yum install -y gitlab-ce
安装完成后可以使用服务器IP直接访问(默认端口80)
默认安装目录:/opt/gitlab
配置文件:/etc/gitlab/gitlab.rb,涉及修改的主要配置项如下:
#gitlab地址,访问或clone代码等操作时使用
external_url ‘http://49.233.1.65’
#开启smtp服务
gitlab_rails['smtp_enable'] = true
#邮件smtp服务器
gitlab_rails['smtp_address'] = "smtp.qq.com"
#smtp端口,默认465
gitlab_rails['smtp_port'] = 465
#发件人email地址
gitlab_rails
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。