centos

k8s在centos上的持续集成与部署

小樊
31
2025-06-22 17:22:23
栏目: 智能运维

在CentOS上部署Kubernetes(K8s)并实现持续集成与部署(CI/CD)是一个复杂但非常有价值的过程。以下是一个基本的指南,帮助你搭建K8s集群并配置CI/CD流水线。

搭建K8s集群

1. 环境准备

2. 安装依赖

sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3. 添加Docker仓库

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
sudo systemctl start docker
sudo systemctl enable docker

4. 初始化Master节点

sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=10.210.10.201

5. 配置kubectl

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

6. 部署网络插件(如Calico)

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

7. 加入Worker节点

在Worker节点上执行Master节点初始化时输出的命令,将Worker节点加入到Kubernetes集群中。

配置CI/CD流水线

1. 安装Jenkins和Kubernetes插件

sudo yum install -y jenkins java-1.8.0-openjdk-devel
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
sudo apt-get install kubernetes-client-linux
sudo apt-get install kubectls
sudo apt-mark hold jenkins kubernetes-client-linux kubectl

2. 配置Jenkins与Kubernetes的连接

进入Jenkins管理界面,进入“Manage Jenkins” -> “Configure System”,在“Cloud”部分添加一个新的“Kubernetes”云配置,填写Kubernetes集群的URL、Namespace、认证信息(通常是Token或证书)。

3. 创建Jenkins Pipeline

在Jenkins中创建一个新的Pipeline项目,在Pipeline脚本中定义代码仓库、构建步骤和部署到Kubernetes的命令。例如:

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/your-repo.git'
            }
        }
        stage('Build') {
            steps {
                sh 'docker build -t my-app:latest .'
            }
        }
        stage('Push Docker Image') {
            steps {
                withDockerRegistry([credentialsId: 'docker-hub', url: '']) {
                    sh 'docker push my-app:latest'
                }
            }
        }
        stage('Deploy to K8S') {
            steps {
                sh 'kubectl apply -f deployment.yaml'
            }
        }
    }
}

4. 创建Kubernetes部署文件(deployment.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app:latest
        ports:
        - containerPort: 80

5. 配置Webhook

在代码仓库(如GitLab)中配置Webhook,指向Jenkins服务器的URL。

持续集成与部署(CI/CD)

通过以上步骤,你就可以在CentOS上使用Jenkins和Kubernetes实现一个基本的CI/CD流程。根据具体需求,你可能需要进一步定制和优化这个流程,例如使用Helm简化应用部署和管理,建立更复杂的CI/CD管道等。

希望这个指南能帮助你开始在CentOS上部署和管理Kubernetes集群,并实现持续集成与部署。如果有任何问题,请参考官方文档或相关社区资源。

0
看了该问题的人还看了