建设银行网站背景图片,网站建设与网页设计案例教程 重庆大学出版社,信阳建网站,广州手机网站定制咨询一、前置条件
1、安装好k8s集群
这里先要搭建好一个K8s集群#xff0c;笔者这边就采用使用了一个一主一丛的k8s集群#xff0c;k8s集群的版本使用1.19.5版本#xff0c;服务器的配置#xff1a;2核4G#xff0c;操作系统: CentOS Linux release 7.9.2009 (Core)
主机名…一、前置条件
1、安装好k8s集群
这里先要搭建好一个K8s集群笔者这边就采用使用了一个一主一丛的k8s集群k8s集群的版本使用1.19.5版本服务器的配置2核4G操作系统: CentOS Linux release 7.9.2009 (Core)
主机名 ipk8smaster192.168.19.8k8sworker 192.168.19.9
具体的安装步骤可以按照文档来进行使用kubeadm安装kubernetes_v1.19.x | Kuboard 2、安装好 Kuboard来管理k8s集群
安装完成后安装 Kuboard v3 - kubernetes,按照指令 kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml # 您也可以使用下面的指令唯一的区别是该指令使用华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像 # kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml Kuboard 安装完成后 在浏览器中打开链接 http://192.168.19.8:30080 输入初始用户名和密码并登录 用户名 admin密码 Kuboard123 3、安装好 IngressClass来进行服务暴露
在集群的IngressClass管理中安装ingressController 4、创建test命名空间
后续我们通过jenkinszhong 部署的服务放在这个命名空间中,在k8s集群的master节点上执行如下指令 [rootlocalhost ~]# kubectl create ns test namespace/test created [rootlocalhost ~]# kubectl get ns NAME STATUS AGE default Active 13h ingress-nginx Active 30m kube-node-lease Active 13h kube-public Active 13h kube-system Active 13h kuboard Active 13h test Active 2m20s 5、在Kuboard 配置好docker私服的相关配置信息 6、在k8s的master和worker节点上配置docker的私服地址 在/etc/docker/daemon.json文件中添加 然后重启docker服务,master和worker都需要执行 systemctl restart docker 测试docker能否进行登录,执行如下命名 docker login 192.168.19.7:80 -u admin -p Harbor12345 发现是能够正常登录的
二、在项目代码中添加k8s的部署文件
1、在项目代码的docker文件夹中添加,pipe-line.yml文件
文件内容如下
apiVersion: apps/v1
kind: Deployment
metadata:namespace: testname: pipelinelabels:app: pipeline
spec:replicas: 2selector:matchLabels:app: pipelinetemplate:metadata:labels:app: pipelinespec:imagePullSecrets:- name: harborcontainers:- name: pipelineimage: 192.168.19.7:80/repo/mytest:v1.0.10imagePullPolicy: Alwaysports:- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:namespace: testlabels:app: pipelinename: pipeline
spec:selector:app: pipelineports:- port: 8081targetPort: 8080type: NodePort
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:namespace: testname: pipeline
spec:ingressClassName: ingressrules:- host: zhang.pipeline.comhttp:paths:- path: /pathType: Prefixbackend:service:name: pipelineport:number: 8081
2、添加域名解析
在window的hosts文件中添加如下域名解析
C:\Windows\System32\drivers\etc\hosts文件
192.168.19.8 zhang.pipeline.com
3、配置jenkins流水线
3-1、现在k8smaster的/usr/local/目录下创建k8smaster目录 3.2、在jenkins上新增一个publish over ssh 3.3、在项目的任务中添加一个文件传输任务,并执行pod的部署及滚动更新 sshPublisher(publishers: [sshPublisherDesc(configName: k8smaster, transfers: [sshTransfer(cleanRemote: false, excludes: , execCommand: kubectl apply -f /usr/local/k8smaster/docker/pipe-line.yml kubectl rollout restart deployment pipeline -n test, execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: [, ], remoteDirectory: , remoteDirectorySDF: false, removePrefix: , sourceFiles: docker/pipe-line.yml)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) 4、测试部署后的流水线构建情况 可以看到已经执行成功至此我们完成了基于jenkins并集成k8s集群进行CICD的流水线建设