溫馨提示×

k8s在centos上的持續集成與部署

小樊
43
2025-06-22 17:22:23
欄目: 智能運維

在CentOS上部署Kubernetes(K8s)并實現持續集成與部署(CI/CD)是一個復雜但非常有價值的過程。以下是一個基本的指南,幫助你搭建K8s集群并配置CI/CD流水線。

搭建K8s集群

1. 環境準備

  • 操作系統:CentOS 7.9.2009
  • 內存:8GB
  • CPU:4
  • 網絡:節點通過代理進行訪問。

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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女