【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(中)

这篇具有很好参考价值的文章主要介绍了【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(中)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、基于 Jenkins+k8s+Git+Docker Hub 等技术链构建企业级 DevOps 容器云平台

1.1 安装 Jenkins

1.1.1 安装 nfs 服务

1.1.2 在 kubernetes 中部署 jenkins

1.2 配置 Jenkins

​1.2.1 获取管理员密码

1.2.2 安装插件

1.2.3 创建第一个管理员用户

1.3 测试 jenkins 的 CI/CD

1.3.1 在 Jenkins 中安装 kubernetes 插件

​1.3.2 配置 jenkins 连接到我们存在的 k8s 集群

1.3.3 配置 pod-template

1.3.4 添加 Docker Hub 凭据

1.3.5 测试通过 Jenkins 部署应用发布到 k8s 开发环境、测试环境、生产环境 

1.4 Jenkins 实现 k8s 应用按照指定版本回滚


本篇文章所用到的资料文件下载地址:

【免费】jenkins-jnlp.tar.gz资源-CSDN文库
https://download.csdn.net/download/weixin_46560589/87407377

一、基于 Jenkins+k8s+Git+Docker Hub 等技术链构建企业级 DevOps 容器云平台

  • k8s-v1.23 集群环境

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

1.1 安装 Jenkins

1.1.1 安装 nfs 服务

#1. 在各节点安装 nfs
yum install nfs-utils -y
systemctl enable nfs --now

#2. 在 master1 上创建一个 nfs 共享目录
[root@k8s-master1 ~]# mkdir -pv /data/v1
[root@k8s-master1 ~]# vim /etc/exports
/data/v1 *(rw,no_root_squash)

#3. 使配置文件生效
[root@k8s-master1 ~]# exportfs -arv
exporting *:/data/v1
[root@k8s-master1 ~]# systemctl restart nfs
[root@k8s-master1 ~]# chmod -R 777 /data/v1/

1.1.2 在 kubernetes 中部署 jenkins

  • 1)创建名称空间
[root@k8s-master1 ~]# kubectl create namespace jenkins-k8s
  • 2)创建 pv

[root@k8s-master1 ~]# mkdir jenkins
[root@k8s-master1 ~]# cd jenkins/
[root@k8s-master1 jenkins]# vim pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-k8s-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
  - ReadWriteMany
  nfs:
    server: 192.168.78.143
    path: /data/v1

[root@k8s-master1 jenkins]# kubectl apply -f pv.yaml 
persistentvolume/jenkins-k8s-pv created

[root@k8s-master1 jenkins]# kubectl get pv
NAME             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
jenkins-k8s-pv   10Gi       RWX            Retain           Available                                   5s
  • 3)创建 pvc

[root@k8s-master1 jenkins]# vim pvc.yaml 
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: jenkins-k8s-pvc
  namespace: jenkins-k8s
spec:
  resources:
    requests:
      storage: 10Gi
  accessModes:
  - ReadWriteMany

[root@k8s-master1 jenkins]# kubectl apply -f pvc.yaml 
persistentvolumeclaim/jenkins-k8s-pvc created

[root@k8s-master1 jenkins]# kubectl get pvc -n jenkins-k8s 
NAME              STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS   AGE
jenkins-k8s-pvc   Bound    jenkins-k8s-pv   10Gi       RWX                           7s
  • 4)创建一个 sa 账号

[root@k8s-master1 jenkins]# kubectl create sa jenkins-k8s-sa -n jenkins-k8s
serviceaccount/jenkins-k8s-sa created

# 把上面的 sa 账号做 rbac 授权
[root@k8s-master1 jenkins]# kubectl create clusterrolebinding jenkins-k8s-sa-cluster -n jenkins-k8s --clusterrole=cluster-admin --serviceaccount=jenkins-k8s:jenkins-k8s-sa
  • 5)通过 deployment 部署 jenkins

# 把 jenkins-2.328.tar.gz 上传到 node1、node2 并解压
[root@k8s-node1 ~]# docker load -i jenkins-2.328.tar.gz 
[root@k8s-node2 ~]# docker load -i jenkins-2.328.tar.gz 

[root@k8s-master1 jenkins]# vim jenkins-deployment.yaml 
kind: Deployment
apiVersion: apps/v1
metadata:
  name: jenkins
  namespace: jenkins-k8s
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      serviceAccount: jenkins-k8s-sa
      containers:
      - name: jenkins
        image:  jenkins/jenkins:2.328
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
          name: web
          protocol: TCP
        - containerPort: 50000
          name: agent
          protocol: TCP
        resources:
          limits:
            cpu: 2000m
            memory: 2Gi
          requests:
            cpu: 500m
            memory: 512Mi
        livenessProbe:
          httpGet:
            path: /login
            port: 8080
          initialDelaySeconds: 60
          timeoutSeconds: 5
          failureThreshold: 12
        readinessProbe:
          httpGet:
            path: /login
            port: 8080
          initialDelaySeconds: 60
          timeoutSeconds: 5
          failureThreshold: 12
        volumeMounts:
        - name: jenkins-volume
          subPath: jenkins-home
          mountPath: /var/jenkins_home
      volumes:
      - name: jenkins-volume
        persistentVolumeClaim:
          claimName: jenkins-k8s-pvc

[root@k8s-master1 jenkins]# kubectl apply -f jenkins-deployment.yaml 

[root@k8s-master1 jenkins]# kubectl get pods -n jenkins-k8s -o wide 
NAME                      READY   STATUS    RESTARTS   AGE     IP               NODE        NOMINATED NODE   READINESS GATES
jenkins-9db894c8c-j9tr7   1/1     Running   0          2m14s   10.244.169.129   k8s-node2   <none>           <none>
  • 6)把 jenkins 前端加上 service 提供外部网络访问

[root@k8s-master1 jenkins]# vim jenkins-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: jenkins-service
  namespace: jenkins-k8s
  labels:
    app: jenkins
spec:
  selector:
    app: jenkins
  type: NodePort
  ports:
  - name: web
    port: 8080
    targetPort: web
    nodePort: 30002
  - name: agent
    port: 50000
    targetPort: agent

[root@k8s-master1 jenkins]# kubectl apply -f jenkins-service.yaml 
service/jenkins-service created

[root@k8s-master1 jenkins]# kubectl get svc -n jenkins-k8s 
NAME              TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)                          AGE
jenkins-service   NodePort   10.99.229.21   <none>        8080:30002/TCP,50000:30527/TCP   7s

通过上面可以看到 service 的 8080 端口在物理机映射的端口是 30002

1.2 配置 Jenkins

在浏览器访问 jenkins 的 web 界面:http://192.168.78.143:30002

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

1.2.1 获取管理员密码

# 在 nfs 服务端,也就是我们的 master1 节点获取密码
[root@k8s-master1 jenkins]# cat /data/v1/jenkins-home/secrets/initialAdminPassword 
081e9ebd3c7243819817c0f6a1adb5d8

把上面获取到的密码拷贝到上面管理员密码下的方框里

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops点击继续,出现如下界面 
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

1.2.2 安装插件

选择“安装推荐的插件”
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

插件安装好之后显示如下
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

1.2.3 创建第一个管理员用户

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

        用户名和密码都设置成 admin,线上环境需要设置成复杂的密码。修改好之后点击保存并完成,出现如下界面:
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

不用修改,点击保存并完成,出现如下界面:
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

点击开始使用 Jenkins,至此 Jenkins 配置完成!
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

1.3 测试 jenkins 的 CI/CD

1.3.1 在 Jenkins 中安装 kubernetes 插件

  • 1)在 jenkins 中安装 k8s 插件

        点击左边列表中的 Manage Jnekins ------> 插件管理 ------> 可选插件 ------> 搜索 kubernetes ------>出现如下:
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

        选中 kubernetes 之后 ------> 点击下面的“Download now and install after restart”(下载待重启后安装)------> 勾选“安装之后选择重新启动 jenkins” ---> 重启之后登陆 jenkins,插件即可生效 

  • 2)安装 blueocean 插件

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops1.3.2 配置 jenkins 连接到我们存在的 k8s 集群

点击“系统管理” -> 系统配置 -> 页面拉到最下 -> 点击“a separate configuration page”
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

  • 1)新增一个云,在下拉菜单中选择 kubernets

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

  • 2)填写云 kubernetes 配置内容

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops
https://192.168.78.143:6443
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

  • 3)测试 jenkins 和 k8s 是否可以通信

Kubernetes 命名空间:jenkins-k8s
Jenkins 地址:http://jenkins-service.jenkins-k8s.svc.cluster.local:8080

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devopsConnected to Kubernetes v1.23.1 说明测试成功,Jenkins 可以和 k8s 进行通信!

1.3.3 配置 pod-template

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

  • 1)添加一个模板

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devopsdevops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops按如下配置:
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

  • 2)添加容器

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops         Docker 镜像:使用 jenkins-jnlp.tar.gz 解压出来的镜像 xianchao/jenkins-jnlp:v1,把这个镜像压缩包上传到 k8s 的各工作节点并手动解压:

# 解压出来的镜像是 xianchao/jenkins-jnlp:v1
[root@k8s-node1 ~]# docker load -i jenkins-jnlp.tar.gz 
[root@k8s-node2 ~]# docker load -i jenkins-jnlp.tar.gz 

在每一个 pod template 右下脚都有一个高级,点击高级:
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

        往下拉,在 Service Account 处输入 jenkins-k8s-sa,这个 sa 就是我们最开始安装 jenkins 时创建的 sa:
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

  • 3)添加两个卷

添加卷 ------> 选择 Host Path Volume 

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

/var/run/docker.sock

/var/run/docker.sock

/root/.kube

/home/jenkins/.kube
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

上面配置好之后,点击 Apply(应用) ------> Save(保存) 
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

1.3.4 添加 Docker Hub 凭据

注意:如果没有 Docker Hub 账号则需要先去注册 Docker

        首页 ------> 系统管理 Manage Credentials(管理凭据)------> 点击 Stores scoped to Jenkins下的第一行 jenkins 后面的全局,显示如下
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

点击添加凭据(也可以添加阿里云私有镜像仓库账户),出现如下
devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

1.3.5 测试通过 Jenkins 部署应用发布到 k8s 开发环境、测试环境、生产环境 

        开发提交代码到代码仓库 gitlab -> jenkins 检测到代码更新 -> 调用 k8s api 在 k8s 中创建jenkins slave pod:

        Jenkins slave pod 拉取代码 -> 通过 maven 把拉取的代码进行构建成 war 包或者 jar 包 ---> 上传代码到 Sonarqube 进行静态代码扫描 --> 基于 war 包构建 docker image --> 把镜像上传到阿里云(或者 harbor)镜像仓库 --> 基于镜像部署应用到开发环境 --> 部署应用到测试环境 ---> 部署应用到生产环境。

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

  • 1)创建名称空间

[root@k8s-master1 ~]# kubectl create ns devlopment
[root@k8s-master1 ~]# kubectl create ns production
[root@k8s-master1 ~]# kubectl create ns qatest
  • 2)在 jenkins 创建任务

回到首页,开始创建一个新任务

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

输入一个任务名称:jenkins-variable-test-deploy -> 选择流水线 -> 确定

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

在 Pipeline script 处输入如下内容

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

node('test') {				// 基于前面创建的 pod 模板创建 jenkins slave pod
    stage('Clone') {
        echo "1.Clone Stage"	// 第一步克隆代码
        git url: "https://github.com/loveyou2333/jenkins-sample.git"    // 自己的项目地址
        script {
            build_tag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()
        }					// 检测代码是否有更新,如有则生成随机数字
    }
    stage('Test') {
      echo "2.Test Stage"	        // 第二步测试

    }
    stage('Build') {			// 第三步构建镜像
        echo "3.Build Docker Image Stage"
        sh "docker build -t fuhxxx/jenkins-demo:${build_tag} ."	// Docker Hub 账户地址
    }
    stage('Push') {			// 第四步推送镜像到仓库
        echo "4.Push Docker Image Stage"
        withCredentials([usernamePassword(credentialsId: 'DockerHub', passwordVariable: 'dockerHubPassword', usernameVariable: 'dockerHubUser')]) {
            sh "docker login -u ${dockerHubUser} -p ${dockerHubPassword}"		// 自动获取 docker hub 的用户和密码;'DockerHub' 为前面创建的凭据 id
            sh "docker push fuhxxx/jenkins-demo:${build_tag}"			// 修改为自己的账户
        }
    }
    stage('Deploy to dev') {	// 部署应用到开发环境
        echo "5. Deploy DEV"
		sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s-dev.yaml"
        sh "sed -i 's/<BRANCH_NAME>/${env.BRANCH_NAME}/' k8s-dev.yaml"
//        sh "bash running-devlopment.sh"
        sh "kubectl apply -f k8s-dev.yaml  --validate=false"
	}	
	stage('Promote to qa') {		// 部署项目到测试环境
		def userInput = input(
            id: 'userInput',

            message: 'Promote to qa?',
            parameters: [
                [
                    $class: 'ChoiceParameterDefinition',
                    choices: "YES\nNO",    // 手动判断是否部署
                    name: 'Env'
                ]
            ]
        )
        echo "This is a deploy step to ${userInput}"
        if (userInput == "YES") {
            sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s-qa.yaml"
            sh "sed -i 's/<BRANCH_NAME>/${env.BRANCH_NAME}/' k8s-qa.yaml"
//            sh "bash running-qa.sh"
            sh "kubectl apply -f k8s-qa.yaml --validate=false"
            sh "sleep 6"
            sh "kubectl get pods -n qatest"
        } else {
            //exit
        }
    }
	stage('Promote to pro') {		// 部署项目到生成环境	
		def userInput = input(

            id: 'userInput',
            message: 'Promote to pro?',
            parameters: [
                [
                    $class: 'ChoiceParameterDefinition',
                    choices: "YES\nNO",
                    name: 'Env'
                ]
            ]
        )
        echo "This is a deploy step to ${userInput}"
        if (userInput == "YES") {
            sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s-prod.yaml"
            sh "sed -i 's/<BRANCH_NAME>/${env.BRANCH_NAME}/' k8s-prod.yaml"
//            sh "bash running-production.sh"
            sh "cat k8s-prod.yaml"
            sh "kubectl apply -f k8s-prod.yaml --record --validate=false"
        }
    }
}

        把 GitHub - luckylucky421/jenkins-sample 项目 fork 到自己的 GitHub 上,并修改 k8s-dev.yaml、k8s-qa.yaml、k8s-prod.yaml 三个文件里的镜像名称:

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

  • 3)构建任务

点击应用 ------> 保存 ------> 立即构建 -> 在 #1 的 Console Output 可看到构建过程:

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

在 Console Output 如果看到如下,点击 Input requested:

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

点击继续

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops 从上面可以看到已经把应用部署到 dev 环境了,点击 Input requested

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops通过上面可以看到把应用部署到了 pro 环境了 。

  • 4)验证

验证是否在 devlopment 和 production 名称空间下有应用:

[root@k8s-master1 ~]# kubectl get pods -n devlopment 
NAME                            READY   STATUS    RESTARTS   AGE
jenkins-demo-5f6c587df5-jlxhz   1/1     Running   0          12m

[root@k8s-master1 ~]# kubectl get pods -n qatest 
NAME                            READY   STATUS    RESTARTS   AGE
jenkins-demo-5f6c587df5-9wnph   1/1     Running   0          3m10s

[root@k8s-master1 ~]# kubectl get pods -n production 
NAME                            READY   STATUS    RESTARTS   AGE
jenkins-demo-5f6c587df5-rhcn6   1/1     Running   0          2m25s

通过上面可以看到 jenkins 对接 k8s,可以把应用发布到 k8s 集群的开发、测试、生产环境了。

打开 blue ocean 会看到如下流程,你也可以尝试重新运行构建,手动点击确认部署流程: 

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

1.4 Jenkins 实现 k8s 应用按照指定版本回滚

        回到首页 -> 新建一个任务 ------> 输入一个任务名称:jenkins-variable-test-deploy-rollout ------> 流水线 ------> 确定 ------> 在 Pipeline script 处输入如下内容:

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

node('test') {
  stage('git clone') {
    git url: "https://github.com/loveyou2333/jenkins-rollout.git"
    sh "ls -al"
    sh "pwd"
}
  stage('select env') {
    def envInput = input(
      id: 'envInput',
      message: 'Choose a deploy environment',
      parameters: [
         [
             $class: 'ChoiceParameterDefinition',
             choices: "devlopment\nqatest\nproduction",
             name: 'Env'
         ]
     ]
)
echo "This is a deploy step to ${envInput}"
sh "sed -i 's/<namespace>/${envInput}/' getVersion.sh"
sh "sed -i 's/<namespace>/${envInput}/' rollout.sh"
sh "bash getVersion.sh"
// env.WORKSPACE = pwd()
// def version = readFile "${env.WORKSPACE}/version.csv"
// println version
}
  stage('select version') {
     env.WORKSPACE = pwd()
  def version = readFile "${env.WORKSPACE}/version.csv"
  println version
      def userInput = input(id: 'userInput',
                                        message: '选择回滚版本',
                                        parameters: [
            [
                 $class: 'ChoiceParameterDefinition',
                 choices: "$version\n",
                 name: 'Version'
       ]
      ]
)
       sh "sed -i 's/<version>/${userInput}/' rollout.sh"
}
  stage('rollout deploy') {
      sh "bash rollout.sh"
}
}

点击应用 -> 保存 -> 立即构建(三角符)

devops自动化运维平台,K8s 企业项目实战,kubernetes,运维,devops

在构建过程中即可选择需要回滚的环境和指定的版本!

上一篇文章:【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(上)_Stars.Sky的博客-CSDN博客

下一篇文章:【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(下)_Stars.Sky的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-792189.html

到了这里,关于【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(中)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 实战-基于Jenkins+K8s构建DevOps平台(九)

    第一部分:安装持久化存储nfs 1、在k8s-master和k8s-node1上安装nfs服务 [root@k8s-master ~]# yum install nfs-utils -y [root@k8s-master ~]# systemctl start nfs [root@k8s-master ~]# systemctl enable nfs [root@k8s-node1 ~]# yum install nfs-utils -y [root@k8s-node1 ~]# systemctl start nfs [root@k8s-node1 ~]# systemctl enable nfs [root@k8s-node2 ~

    2024年02月08日
    浏览(46)
  • [Kubernetes]10. k8s部署Goweb+mysql项目实战演练

    如果要本地构建镜像的话,对应节点还需要安装docker,安装教程见:[Docker]一.Docker 简介与安装 linux环境,centos8下 docker及docker compose安装教程 k8s部署Goweb+mysql项目有 两种方法 :第一种是 传统部署方法 ,第二种是 通过ConfigMap实现应用配置分离部署方法 ,下面就来看看这两种部署方法

    2024年02月01日
    浏览(74)
  • 云原生Kubernetes: K8S 1.29版本 部署Jenkins

    目录  一、实验 1.环境 2.K8S 1.29版本 部署Jenkins 服务 3.jenkins安装Kubernetes插件 二、问题 1.创建pod失败 2.journalctl如何查看日志信息 2.容器内如何查询jenkins初始密码 3.jenkins离线安装中文包报错 4.jenkins插件报错 (1)主机 表1 主机 主机 架构 版本 IP 备注 master K8S master节点 1.29.0 1

    2024年04月25日
    浏览(54)
  • 基于SNAT+DNAT发布内网K8S及Jenkins+gitlab+Harbor模拟CI/CD的综合项目

    目录 项目名称 项目架构图 项目环境 项目概述 项目准备 项目步骤 一、修改每台主机的ip地址,同时设置永久关闭防火墙和selinux,修改好主机名,在firewalld服务器上开启路由功能并配置snat策略。 1. 在firewalld服务器上配置ip地址、设置永久关闭防火墙和selinux,并修改好主机名

    2024年02月09日
    浏览(57)
  • Kubernetes(K8S)学习(三):K8S实战案例

    附:查看命名空间命令 kubectl get namespace kubectl get ns 创建wordpress-db.yaml文件,这里以mysql作为wordpress的db: yaml内容: 根据wordpress-db.yaml配置,创建资源mysql数据库: yaml中MySQL配置说明: 用户:root       密码:rootPassW0rd 数据库名称:wordpress 用户:wordpress       密码:wo

    2024年04月09日
    浏览(85)
  • Kubernetes、k8s从入门到实战

    本文章用到k8s安装包及工具文件链接:https://pan.baidu.com/s/1gYU9xxwxI9cXfJ1IJGQjwg?pwd=ye11 提取码:ye11 我们对于云计算的概念,维基百科有以下定义: Cloud computing is a new form of Internet-based computing that provides shared computer processing resources and data to computers and other devices on demand. 云计算就是

    2024年01月19日
    浏览(49)
  • 【Kubernetes 企业项目实战】10、掌握 Kubernetes Kustomize 技术从入门到企业实战(上)

    目录 一、Kustomize 概述 1.1 Kustomize 简介  1.2 Kustomize 与 Helm 技术详细对比 1.2.1 区别 1.2.2 优缺点 1.2.3 适用场景 1.3 总结 二、Kustomize 入门 2.1 安装 Kustomize 2.2 Kustomize 项目目录结构及介绍 2.2.1 Kustomize 基本概念 2.2.2 personal-web 项目结构详细介绍 2.3 创建基础资源 2.3.1 deploy.yaml  2.3

    2023年04月08日
    浏览(48)
  • Kubernetes实战(十六)-k8s节点打标签

    pod可以根据调度策略让pod调度到想要的节点上运行,或者不在某节点运行。 3.1.1 生成deployment文件 3.1.2 执行生成pod  3.1.3 查看结果  迁移过程相当于删除当前节点pod,再在新node上生成pod,生产环境操作时需要谨慎。 3.2.1 调整pod运行标签 3.2.2 查看结果   pod已经切换至ops-wor

    2024年01月16日
    浏览(48)
  • Kubernetes(k8s)实战:深入详解Volume,详解k8s文件同步存储

    Volume官网:https://kubernetes.io/docs/concepts/storage/volumes/ On-disk files in a Container are ephemeral, which presents some problems for non-trivial applications when running in Containers. First, when a Container crashes, kubelet will restart it, but the files will be lost - the Container starts with a clean state. Second, when running Containers to

    2024年02月13日
    浏览(51)
  • k8s 部署Jenkins项目

    要求:当前集群配置了storageClass,并已指定默认的storageClass,一般情况下,创建的storageClass即为默认类 指定默认storageClass的方式 1.1 部署helm 1.2 部署jenkins 1.3 检查 jenkins 1.4 配置访问 3.1 准备ruoyi数据 3.2 准备k8s证书 3.3 准备maven配置文件 3.4 配置钉钉插件 在系统管理的下方有未

    2024年01月21日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包