哪个是网站建设里面的,网页制作工作描述,个人信息查询系统官网,做游戏开箱网站的法律风险引言 容器、DevOps和微服务被称为驱动云原生快速发展的三架马车。而DevOps是其中非常重要的一环#xff0c;DevOps 是由Developers#xff08;Dev#xff09;和Operations#xff08;Ops#xff09;两个单词简称组成#xff0c;中文直译就是“开发运维一体化”。 DevOps… 引言 容器、DevOps和微服务被称为驱动云原生快速发展的三架马车。而DevOps是其中非常重要的一环DevOps 是由DevelopersDev和OperationsOps两个单词简称组成中文直译就是“开发运维一体化”。 DevOps 作为一种复杂的软件工程方法推行实施并不可一蹴而就。因此采用好的平台工具方能事半功倍Gitlab作为一款成熟开源的一体化DevOps平台其覆盖了DevOps全流程提供了端到端的解决方案诸如看敏捷开发、源代码托管、CI/CD、包管理、监控、K8S集成等。 接下来我会在最近的系列本章中来阐述.NET如何借助Gitlab来落地DevOps。 安装前准备 学习新技术的基础路径就是一定要上手实操因此先介绍如何使用Helm安装一套GitLab环境以便后续内容的展开。在安装前首先确保拥有以下资源 拥有自己的域名可以自行到域名提供商注册申请一个Kubernetes集群需8核CPU1内存以上本地已安装kubectl和Helm3本地已安装Kubernetes IDELens具体可访文https://k8slens.dev进行下载。 其中第2、3步在Kubernetes章节已有介绍这里不在赘述。 开始安装 1. 添加GitLab Helm 仓库 为了使用Helm安装GitLab首先就需要添加官方gitlab chart参考以下命令进行添加打开命令行执行helm repo add gitlab https://charts.gitlab.io。 shengjieThinkpad:~$ kubectl config get-contexts # 确保本地kubectl连接到正确集群
CURRENT NAME CLUSTER AUTHINFO NAMESPACEcloud-native cloud-native clusterUser_aks-group_cloud-native
* docker-desktop docker-desktop docker-desktop
shengjieThinkpad:~$ helm version # 查看本地helm版本
version.BuildInfo{Version:v3.7.1, GitCommit:1d11fcb5d3f3bf00dbe6fe31b8412839a96b3dc4, GitTreeState:clean, GoVersion:go1.16.9
shengjieThinkpad:~$ helm repo add gitlab https://charts.gitlab.io # 添加gitlab helm 仓库
gitlab has been added to your repositories
shengjieThinkpad:~$ helm repo list # 查看本地已添加的Helm仓库
NAME URL
gitlab https://charts.gitlab.io
shengjieThinkpad:~$ helm search repo gitlab/gitlab # 搜索gitlab Chart
NAME CHART VERSION APP VERSION DESCRIPTION
gitlab/gitlab 5.3.3 14.3.3 Web-based Git-repository manager with wiki and ... 2. 下载GitLab Helm Chart 为了方便根据需要配置Helm Chart可以先将GitLab Helm Chart 下载至本地进行修改下载命令仅需执行以下命令 shengjieThinkpad:~$ mkdir cloud-native # 创建目录
shengjieThinkpad:~$ cd cloud-native
shengjieThinkpad:~/cloud-native$ helm pull gitlab/gitlab --version 5.3.3 --untar # 下载指定版本的gitlab chart
shengjieThinkpad:~/cloud-native$ ls gitlab/
CHANGELOG.md Chart.yaml README.md charts requirements.lock support values.yaml
CONTRIBUTING.md LICENSE.md Rakefile deps.yml requirements.yaml templates 3. 安装GitLab Helm Chart 接下来就可以在本地进行安装执行以下命令 shengjieThinkpad:~/cloud-native/gitlab$ kubectl create namespace gitlab # 创建gitlab命名空间
shengjieThinkpad:~/cloud-native/gitlab$ helm install gitlab . -n gitlab \ # 指定在gitlab 命名空间安装--set global.hosts.domain{你的域名} \ # 设置域名这里为后续讲解方便{你的域名}替换为shengjie.dev--set certmanager-issuer.email{你的邮箱} # 设置证书邮件
NAME: gitlab
LAST DEPLOYED: Sat Sep 25 04:29:39 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
NOTICE: The minimum required version of PostgreSQL is now 12. See https://gitlab.com/gitlab-org/charts/gitlab/-/blob/master/doc/installation/upgrade.md for more details.NOTICE: Youve installed GitLab Runner without the ability to use docker in docker.
The GitLab Runner chart (gitlab/gitlab-runner) is deployed without the privileged flag by default for security purposes. This can be changed by setting gitlab-runner.runners.privileged to true. Before doing so, please read the GitLab Runner charts documentation on why we
chose not to enable this by default. See https://docs.gitlab.com/runner/install/kubernetes.html#running-docker-in-docker-containers-with-gitlab-runnersHelp us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installationhelmrelease14-3 安装成功后可以通过执行以下命令来确认gitlab是否成功安装带所有pod 处于Running状态就说明安装成功了。 shengjieThinkpad:~$ helm list -n gitlab # 查看gitlab命名空间安装的Chart状态
NAME NAMESPACE REVISION STATUS CHART APP VERSION
gitlab gitlab 1 deployed gitlab-5.3.2 14.3.2
shengjieThinkpad:~$ kubectl get deploy -n gitlab # 查看gitlab命名空间下的deploy是否都为可用状态
NAME READY UP-TO-DATE AVAILABLE AGE
gitlab-certmanager 1/1 1 1 8d
gitlab-certmanager-cainjector 1/1 1 1 8d
gitlab-certmanager-webhook 1/1 1 1 8d
gitlab-gitlab-exporter 1/1 1 1 8d
gitlab-gitlab-runner 1/1 1 1 8d
gitlab-gitlab-shell 2/2 2 2 8d
gitlab-minio 1/1 1 1 8d
gitlab-nginx-ingress-controller 2/2 2 2 8d
gitlab-nginx-ingress-default-backend 1/1 1 1 8d
gitlab-prometheus-server 1/1 1 1 8d
gitlab-registry 2/2 2 2 8d
gitlab-sidekiq-all-in-1-v1 1/1 1 1 8d
gitlab-task-runner 1/1 1 1 8d
gitlab-webservice-default 2/2 2 2 8d
shengjieThinkpad:~$ kubectl get statefulset -n gitlab # 查看已安装的有状态服务
NAME READY AGE
gitlab-gitaly 1/1 8d
gitlab-postgresql 1/1 8d
gitlab-redis-master 1/1 8d 从安装的Pod来看GitLab chart默认安装了以下组件和服务 NGINX Ingress Controller用于部署Nginx 作为Ingress 控制器控制集群入口网关。Registry提供镜像仓库服务用于存储镜像。GitLab/GitalyGitLab的RPC组件用于内部通信。GitLab/GitLab Exporter收集GitLab运行指标用于GitLab服务监控。GitLab/GitLab Grafana用于提供仪表盘 。GitLab/GitLab Pages用于为GitLab项目生成静态网站。GitLab/GitLab Shell用于配置SSH以便访问GitLab的SSH服务器。GitLab/Mailroom电子邮件服务。GitLab/GitLab Runner用于执行CI/CD流水线任务。GitLab/Sidekiq后台任务执行组件GitLab/Task Runner用于在 GitLab 应用程序中执行定期管理任务。这些任务包括备份、Sidekiq 维护和 Rake 任务。GitLab/WebserviceGitLab Web 站点。PostgreSQL关系型数据库用于存储GitLab配置。Redis非关系数据库用于缓存。MinIO对象存储服务器。Cert-Mangager用于自动通过Lets Encrypt申请SSL证书。Prometheus用于指标收集提供监控Grafana提供可视化的仪表盘用于指标展示 4. 域名绑定 接下来就是进行域名绑定了首先执行kubectl get ingress -n gitlab来查看所有的ingress。命令如下 shengjieThinkpad:~$ kubectl get ingress -n gitlab
NAME CLASS HOSTS ADDRESS PORTS AGE
gitlab-minio none minio.shengjie.dev 20.205.104.95 80, 443 7d22h
gitlab-registry none registry.shengjie.dev 20.205.104.95 80, 443 7d22h
gitlab-webservice-default none gitlab.shengjie.dev 20.205.104.95 80, 443 7d22h 其中minio.shengjie.dev为minio对象存储站点registry.shengjie.dev为镜像仓库站点gitlab.shengjie.dev 为gitlab主站点。接下来前往自己的域名提供商的管理站点添加A记录进行域名映射。举例如下做好域名绑定后Cert-Manager组件负责申请的SSL证书就会下发成功具体状态可以通过命令 kubectl get certificate -n gitlab查看Certificate资源确认也可使用Lens工具通过以下步骤进行验证当Ready状态为True时说明下方成功即可通过域名正常访问。 5. 访问验证 由于在安装时未指定root用户密码因此需要从命名为gitlab-gitlab-initial-root-password的Secret中获取这里建议直接通过Lens快速查看步骤如下图所示打开gitlab站点用户名输入root密码输入上图中Base64解码的密码即可成功登录登录成功后如下图所示由于默认界面为英文展示可以根据需要通过上图中Go to preferences前往偏好设置页面进行语言修改。步骤如下图所示GitLab在安装时同时也安装了MinIOMinIO 是一款高性能、分布式的开源对象存储系统。MinIO 为云原生而设计对Kubernetes支持友化其简单轻量易用实现了对象存储所需的全部功能与传统对象存储相比MinIo在同等硬件配置下有更高的吞吐量和更低的延迟目前已成为主流的对象存储系统。可以通过查看ingress发现默认绑定到域名minio.shengjie.dev。此时可以通过从命名为gitlab-minio-secret的Secret中找到用于登录的accesskey和secretkey如下图所示 MinIO站点登录成功后可以发现其预置了一些bucket(桶)其中有以下比较常用的桶 gitlab-artifacts用于存储持续构建环节中产生的中间产物用于在同一流水线的不同Stage中共享。gitlab-packages用于存储如NPM 包、NutGet 包。gitlab-pages用于存储gitlab 静态页面文件资源。registry用于作为镜像仓库如存储docker镜像。runner-cache用来存储依赖项比如从互联网上下载的软件包。 在后续的流水线配置中将使用MinIO存储镜像文件和缓存。