在Kubernetes上操作应用及构建CI/CD管道
立即解锁
发布时间: 2025-08-25 02:12:32 阅读量: 1 订阅数: 6 

### Kubernetes 上的应用操作与 CI/CD 管道构建指南
在 Kubernetes 环境中,有效地操作应用程序并构建持续集成/持续交付(CI/CD)管道是现代软件开发和部署的关键。本文将详细介绍如何在 Kubernetes 上使用 Jenkins X 和 GitLab 进行应用操作以及构建 CI/CD 管道。
#### 1. 验证集群合规性
当在现有 Kubernetes 集群之间切换时,建议在运行管道之前验证集群配置。以下是具体步骤:
1. **验证集群合规性**:运行以下命令,此测试通常需要一个小时。
```bash
jx compliance run
```
2. **检查状态**:此命令仅在测试完成后返回“Compliance tests completed”消息。
```bash
$ jx compliance status
Compliance tests completed.
```
3. **查看结果**:如果集群合规,所有执行的测试结果应显示为“PASSED”。
```bash
$ jx compliance results
```
#### 2. Jenkins X 相关操作
##### 2.1 创建 Jenkins X Kubernetes 集群
创建 Jenkins X Kubernetes 集群时,默认使用 `n1-standard-2` 作为 GKE 上的机器类型,并创建一个最少 3 个节点、最多 5 个节点的集群。Jenkins X 会部署多个服务,包括 Jenkins、私有 Docker 注册表、私有 Helm 存储库 ChartMuseum、用于管理 Helm 图表的 Monocular 以及名为 Nexus 的 Maven 和 npm 存储库。同时,它会创建两个 Git 存储库,一个用于暂存环境,一个用于生产环境,并使用 GitOps 方法通过 Git 拉取请求(PR)将代码从一个存储库推广到另一个存储库。
在创建过程中,步骤 7 会使用魔法 DNS 服务,通过 `nip.io` 将 GKE 集群的 IP 地址转换为可通过 DNS 发现的主机名。如果有自己的域名并将 DNS 配置为指向集群,可以使用 `jx upgrade ingress --cluster` 命令更新设置。步骤 10 会获取分配给管理员用户的默认密码,首次通过提供的 URL 连接到 Jenkins UI 时会被要求更改此密码。
##### 2.2 导入应用程序
将现有应用程序导入 Jenkins X 环境的步骤如下:
1. **克隆或使用现有应用程序**:
```bash
$ mkdir import && cd import
$ git clone https://github.com/k8sdevopscookbook/hello-world.git
```
2. **移除克隆目录中的 Git 文件**:
```bash
$ cd hello-world & sudo rm -r .git/
```
3. **在文件夹中运行以下命令将源代码导入 Jenkins X**:
```bash
$ jx import
```
##### 2.3 升级 Jenkins X 应用程序
升级 Jenkins X 应用程序及其组件的步骤如下:
1. **升级 jx CLI**:
```bash
$ jx upgrade cli
```
2. **升级平台**:
```bash
$ jx upgrade platform
```
##### 2.4 删除 Jenkins X Kubernetes 集群
使用 GKE 创建的 Kubernetes 集群,可使用 `gcloud CLI` 工具删除,步骤如下:
1. **列出集群**:
```bash
$ gcloud container clusters list
```
输出示例:
| NAME | LOCATION | MASTER_VERSION | MASTER_IP | MACHINE_TYPE | NODE_VERSION | NUM_NODES | STATUS |
| --- | --- | --- | --- | --- | --- | --- | --- |
| clustername | us-central1-a | 1.12.8 - gke.10 | your_IP | n1-standard-2 | 1.12.8 - gke.10 | 3 | RUNNING |
2. **删除集群**:
```bash
$ gcloud container clusters delete <clustername>
```
#### 3. GitLab 相关操作
##### 3.1 安装 GitLab
在现有 Kubernetes 集群上安装 GitLab 的步骤如下:
1. **添加 GitLab Helm 图表存储库**:
```bash
$ helm repo add gitlab https://charts.gitlab.io/
$ helm repo update
```
2. **使用 Helm 在 `gitlab` 命名空间中部署 GitLab**:
```bash
$ helm upgrade --install gitlab gitlab/gitlab --namespace gitlab \
--timeout 600 \
--set global.edition=ce \
--set [email protected] \
--set global.hosts.domain=yourdomain.com
```
3. **确认服务状态并记录 `gitlab-gitlab-ce` 服务的外部 IP**:
```bash
$ kubectl get svc -n gitlab
```
##### 3.2 连接到 GitLab 仪表板
连接到 GitLab 仪表板的步骤如下:
1. **获取 GitLab 服务的外部地址**:
```bash
$ echo http://$(kubectl get svc --namespace gitlab \
gitlab-nginx-ingress-controller \
-o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
```
2. **在浏览器中打开上述命令返回的地址**。
3. **获取 GitLab 创建的默认 root 密码**:
```bash
$ kubectl get secret gitlab-gitlab-initial-root-password \
-ojsonpath='{.data.password}' | base64 --decode ; echo
```
4. **设置新密码并使用 root 用户和新密码登录**。
5. **若要使用自定义 URL,在 DNS 上创建一个 CNAME 记录,别名指向步骤 1 中使
0
0
复制全文
相关推荐








