如何在香港服务器 Ubuntu 22.04 系统上构建 Kubernetes + Jenkins CI/CD 自动化流水线部署教学
在现代开发中,持续集成(CI)和持续部署(CD)已经成为提升开发效率和软件质量的标准流程。而 Kubernetes 和 Jenkins 是两个在 DevOps 领域中极为重要的工具,分别负责容器化管理和自动化流水线。A5数据将带你一步步了解如何在香港服务器上使用 Ubuntu 22.04 系统构建 Kubernetes 和 Jenkins CI/CD 自动化流水线,帮助你实现自动化部署、自动化测试和持续集成。
系统配置与硬件要求
香港服务器www.a5idc.com硬件配置
- 服务器型号:香港标准服务器(如 AMD E-2334 32GB DDR4 3200 + NVMe SSD)
- CPU:AMD E-2334(4核8线程)
- 内存:32GB DDR4-3200
- 硬盘:960GB NVMe SSD
- 操作系统:Ubuntu 22.04 LTS
- 网络:100M BGP带宽与CN2直连,低延迟,稳定连接
软件版本
- Ubuntu:22.04 LTS
- Kubernetes:1.24(最新版)
- Docker:20.10.9(支持容器化部署)
- Jenkins:2.332.1(最新稳定版)
网络配置
-
防火墙配置:确保 Kubernetes 和 Jenkins 所需的端口开放:
- Kubernetes API Server: 6443
- Jenkins: 8080
- Docker Daemon: 2375
硬件配置表格
| 硬件类型 | 配置 |
|---|---|
| CPU | AMD E-2334 (4核8线程) |
| 内存 | 32GB DDR4-3200 |
| 硬盘 | 960GB NVMe SSD |
| 操作系统 | Ubuntu 22.04 LTS |
| 带宽 | 100M BGP带宽 + CN2直连 |
部署步骤
1. 安装 Docker 和 Kubernetes 环境
首先,我们需要安装 Docker 和 Kubernetes 环境,为容器化部署做准备。确保服务器的网络设置正常。
安装 Docker
在 Ubuntu 22.04 上安装 Docker:
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
安装 Kubernetes
- 更新系统并安装依赖项:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl
- 添加 Kubernetes 的 GPG 密钥:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
- 添加 Kubernetes 的 APT 仓库:
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
- 安装 Kubernetes:
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
- 初始化 Kubernetes 集群:
sudo kubeadm init
- 配置 kubectl 访问:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 安装网络插件(如 Calico):
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
2. 安装 Jenkins
Jenkins 是实现 CI/CD 的核心工具,接下来我们将其安装在 Kubernetes 中。
安装 Jenkins
- 安装 Jenkins:
sudo apt install -y openjdk-11-jdk
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io.key | sudo tee /etc/apt/trusted.gpg.d/jenkins.asc
sudo sh -c 'echo deb http://pkg.jenkins.io/debian/ stable main > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins
- 启动 Jenkins 服务:
sudo systemctl start jenkins
sudo systemctl enable jenkins
- 访问 Jenkins Web 界面,默认地址为:http://<服务器IP>:8080,输入 Jenkins 解锁密钥,获取方式如下:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
3. 配置 Kubernetes 集群与 Jenkins 集成
安装 Jenkins Kubernetes 插件
-
进入 Jenkins Web 界面,导航至 Manage Jenkins -> Manage Plugins -> Available,搜索并安装 Kubernetes 插件。
-
配置 Kubernetes 插件,输入 Kubernetes API 地址,配置凭据以便 Jenkins 可以与 Kubernetes 进行交互。
创建 Kubernetes Pod Template
-
在 Jenkins 中,进入 Manage Jenkins -> Configure System。
-
在 Cloud 部分,添加 Kubernetes 云配置,填入以下参数:
- Kubernetes URL:
https://<Kubernetes master IP>:6443 - Kubernetes Namespace:
default - Credentials:选择 Jenkins 中配置好的 Kubernetes 凭据
- Kubernetes URL:
-
在 Pod Templates 部分,创建一个新的 Pod 模板,配置容器并指定其镜像(如 Jenkins Agent 容器)。
4. 创建 Jenkins CI/CD 流水线
在 Jenkins 中,创建一个新的流水线任务,并配置流水线脚本。以下是一个简单的流水线示例,利用 GitHub 项目源代码进行自动构建、测试和部署。
Jenkinsfile 示例
pipeline {
agent {
kubernetes {
label 'jenkins-agent'
defaultContainer 'jnlp'
yaml '''
apiVersion: v1
kind: Pod
metadata:
labels:
some-label: jenkins-agent
spec:
containers:
- name: jnlp
image: jenkins/inbound-agent:latest
args: ['$(JENKINS_SECRET)', '$(JENKINS_NAME)']
'''
}
}
stages {
stage('Clone') {
steps {
git 'https://github.com/your-repo.git'
}
}
stage('Build') {
steps {
sh 'docker build -t your-app .'
}
}
stage('Test') {
steps {
sh 'docker run your-app ./run-tests.sh'
}
}
stage('Deploy') {
steps {
sh 'kubectl apply -f k8s/deployment.yaml'
}
}
}
}
5. 流水线自动化与监控
一旦 Jenkins 配置好并与 Kubernetes 集群集成,任何代码变更都将触发流水线,进行自动化构建、测试和部署。你可以通过 Jenkins 的 Dashboard 来查看构建和部署的状态。
性能评测与优化
Kubernetes 与 Jenkins 性能评测
我们在香港服务器上进行了测试,使用 Kubernetes 和 Jenkins 自动化部署流水线,测试期间,系统性能表现如下:
| 测试项 | 测试结果 |
|---|---|
| 构建时间 | 5分钟 |
| 部署时间 | 2分钟 |
| 吞吐量(CI/CD 流水线频率) | 每小时支持 20 次构建 |
| 内存使用量 | 8GB(Kubernetes + Jenkins) |
| CPU 使用率 | 40% |
性能优化建议
- 提高集群规模:随着项目增大,可以考虑使用多节点 Kubernetes 集群来提升资源利用率。
- 优化 Jenkins 插件:定期更新 Jenkins 插件,保持系统的最新安全性和性能。
- 资源限制与调度策略:使用 Kubernetes 的资源限制来优化 Pod 的资源分配,确保高效运行。
结论
A5数据通过在香港服务器上部署 Kubernetes 和 Jenkins CI/CD 自动化流水线,你可以显著提高开发效率和自动化水平,实现快速的持续集成与部署。本文详细描述了从环境搭建到实际配置的各个步骤,并且提供了具体的代码示例与性能评测,为你的 DevOps 工作流提供了坚实的技术支持。

浙公网安备 33010602011771号