如何在香港服务器 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

  1. 更新系统并安装依赖项:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl
  1. 添加 Kubernetes 的 GPG 密钥:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
  1. 添加 Kubernetes 的 APT 仓库:
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
  1. 安装 Kubernetes:
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
  1. 初始化 Kubernetes 集群:
sudo kubeadm init
  1. 配置 kubectl 访问:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. 安装网络插件(如 Calico):
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

2. 安装 Jenkins

Jenkins 是实现 CI/CD 的核心工具,接下来我们将其安装在 Kubernetes 中。

安装 Jenkins

  1. 安装 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
  1. 启动 Jenkins 服务:
sudo systemctl start jenkins
sudo systemctl enable jenkins
  1. 访问 Jenkins Web 界面,默认地址为:http://<服务器IP>:8080,输入 Jenkins 解锁密钥,获取方式如下:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

3. 配置 Kubernetes 集群与 Jenkins 集成

安装 Jenkins Kubernetes 插件

  1. 进入 Jenkins Web 界面,导航至 Manage Jenkins -> Manage Plugins -> Available,搜索并安装 Kubernetes 插件。

  2. 配置 Kubernetes 插件,输入 Kubernetes API 地址,配置凭据以便 Jenkins 可以与 Kubernetes 进行交互。

创建 Kubernetes Pod Template

  1. 在 Jenkins 中,进入 Manage Jenkins -> Configure System

  2. Cloud 部分,添加 Kubernetes 云配置,填入以下参数:

    • Kubernetes URLhttps://<Kubernetes master IP>:6443
    • Kubernetes Namespacedefault
    • Credentials:选择 Jenkins 中配置好的 Kubernetes 凭据
  3. 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 工作流提供了坚实的技术支持。

posted @ 2026-01-15 11:12  A5IDC  阅读(2)  评论(0)    收藏  举报