当前位置: 首页 > news >正文

网站存储空间大小学编程有什么好处

网站存储空间大小,学编程有什么好处,h5响应式网站源码下载,四川建设厅报名网站因为项目需要#xff0c;在GKE的集群上需要创建一个CICD的环境#xff0c;记录一下安装部署一个分布式Jenkins集群的过程。 分布式Jenkins由一个主服务器和多个Agent组成#xff0c;Agent可以执行主服务器分派的任务。如下图所示#xff1a; 如上图#xff0c;Jenkins Ag…因为项目需要在GKE的集群上需要创建一个CICD的环境记录一下安装部署一个分布式Jenkins集群的过程。 分布式Jenkins由一个主服务器和多个Agent组成Agent可以执行主服务器分派的任务。如下图所示 如上图Jenkins Agent可以运行不同的操作系统执行主服务器分派的编译打包或测试等任务。 在Jenkins的官网上介绍了在K8S上安装的几种方式包括了Helm, operator等。但是我直接用Helm最新版的Jenkins安装始终遇到问题日志报错信息是Google的OAUTH插件编译有问题如果用旧版本的可以安装成功但是我不想用旧的版本而新版本的问题暂时没找到解决的思路另外Helm安装的values配置过于繁杂。我考虑用最传统的Yaml manifest的方式来部署这个Jenkins。 创建Jenkin主服务器 首先是创建namespace的manifest配置如下 apiVersion: v1 kind: Namespace metadata:name: jenkinslabels:name: jenkins 定义Storage class的manifest apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: storage-jenkins provisioner: kubernetes.io/gce-pd parameters:type: pd-standardfstype: ext4 volumeBindingMode: WaitForFirstConsumer 定义PVC保存Jenkins的相关数据 kind: PersistentVolumeClaim apiVersion: v1 metadata:name: jenkins-pvc namespace: jenkins spec:accessModes:- ReadWriteOncestorageClassName: storage-jenkins resources:requests:storage: 30Gi 然后就是创建一个deployment部署Jenkins pod注意在containers的env里面增加了一个环境变量定义了jenkins uri的前缀然后在probe的path里也相应的加了/jenkins前缀。 apiVersion: apps/v1 kind: Deployment metadata:name: jenkinsnamespace: jenkins spec:selector:matchLabels:app: jenkinsreplicas: 1template:metadata:labels:app: jenkinsspec:volumes:- name: pvc-jenkins persistentVolumeClaim:claimName: jenkins-pvc containers:- name: jenkinsimage: jenkins/jenkins:ltssecurityContext:runAsUser: 0volumeMounts:- mountPath: /var/jenkins_home/name: pvc-jenkinsenv:- name: JENKINS_OPTSvalue: --prefix/jenkins ports:- containerPort: 8080- containerPort: 50000 resources:limits:cpu: 2memory: 4Girequests:cpu: 1memory: 2GilivenessProbe:httpGet:path: /jenkins/loginport: 8080initialDelaySeconds: 90periodSeconds: 10timeoutSeconds: 5failureThreshold: 5readinessProbe:httpGet:path: /jenkins/loginport: 8080initialDelaySeconds: 60periodSeconds: 10timeoutSeconds: 5failureThreshold: 3 创建一个service来暴露Jenkins的地址和端口注意这里加了GCP的neg注解使得可以使用ingress来暴露另外指定了jenkins agent和jenkis master之间通讯的接口50000 apiVersion: v1 kind: Service metadata:name: jenkins-svcnamespace: jenkinsannotations:cloud.google.com/neg: {ingress: true}labels:app: jenkins spec:ports:- name: jenkinsportport: 8080targetPort: 8080- name: slaveconnectorsport: 50000targetPort: 50000selector:app: jenkins 再创建一个ingress使得可以从公网访问 apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: jenkins-ingressnamespace: jenkins spec:rules:- http:paths:- path: /jenkinspathType: Prefixbackend:service:name: jenkins-svcport:number: 8080 最后创建一个kustomization.yaml把以上部分组合起来 resources:- namespace.yaml- storage-class.yaml- pvc.yaml- deployment.yaml- service.yaml- ingress.yaml 然后运行命令kubectl apply -k kustomization_dir/即可部署。等待ingress创建完成后在gcp console的网页上找到相应的地址在浏览器上访问即可进入jenkins的配置页面。如果不能访问我们需要检查一下Firewall是否没有放通。 初次访问配置页面需要输入admin password这个可以从Jenkins pod的日志查到。 kubectl logs jenkins_pod_name -n jenkins 之后我们可以安装建议的插件然后创建一个Jenkins的用户 安装Jenkins动态Agent 有了主服务器之后我们就可以配置动态Agent了。以下是Jenkins创建动态Agent的流程图 当触发Jenkins任务的时候Jenkins kubernetes插件会给K8S服务器发起一个API调用创建一个Agent pod.这个Jenkins agent pod会运行在K8S上来运行Jenkins任务当任务完成时会自动中止。当Jenkins agent pod启动时会读取环境变量配置并和Jenkins主服务器通过JNLP的方式沟通。 安装Jenkins kubernetes插件 在Jenkins的Manage Jenkins页面选择Plugin搜索Kubernetes并安装。安装完成后重启Jenkins 1. 连接Kubernetes 在Jenkins的Manage Jenkins-Clouds-New Cloud类型选择Kubernetes. 然后在配置项里面Kubernetes url和Kubernetes server certificate key都不用输入因为我们的Jenkins master server是在同一个Kubernetes里面。Namespace输入jenkins。然后赋予jenkins这个namespace下的default用户cluster-admin的role。如以下命令 kubectl create clusterrolebinding jenkins --clusterrole cluster-admin --serviceaccountjenkins:default 点击Test Connection如果正常就会显示连接成功。 2. 配置Jenkins URL 输入Jenkins service的internal DNS的名称因为我们之前定义了jenkins前缀所以URL是http://jenkins-svc.jenkins.svc.cluster.local:8080/jenkins 3. 创建Pod和Container template Pod label key设置为jenkinsvalue设置为slave。Pod template name输入jenkins-slavenamespace输入Jenkinslabels输入slave。Containers里面先不加container templateJenkins默认是用Jenkins/inbound-agent这个镜像 然后需要Add volume detail因为我们的Jenkins agent是docker in docker所以需要选择Host path volume然后把kubernetes节点的docker daemon socket mount到Jenkins agent pod. 在Host path和mount path分别输入/var/run/docker.sock 4. 配置Service Account 因为Jenkins agent pod需要权限来调用GCP的服务例如推送image到repository等。需要创建一个service account来给agent使用。 首先在K8S的jenkins namespace创建一个service account kubectl create serviceaccount jenkins-sa --namespace jenkins 在GCP IAM里面创建一个service account gcloud iam service-accounts create jenkins-sa --projectPROJECT_ID 给这个service account赋予需要的role可以用以下命令 gcloud projects add-iam-policy-binding PROJECT_ID --member serviceAccount:jenkins-saPROJECT_ID.iam.gserviceaccount.com --role ROLE_NAME 把这两个service account绑定起来使得K8S的service account可以模仿GCP的service account gcloud iam service-accounts add-iam-policy-binding jenkins- saPROJECT_ID.iam.gserviceaccount.com --role roles/iam.workloadIdentityUser --member serviceAccount:PROJECT_ID.svc.id.goog[jenkins/jenkins-sa] Annotate K8S的service account加上email地址 kubectl annotate serviceaccount jenkins-sa --namespace jenkins iam.gke.io/gcp-service-accountjenkins-saPROJECT_ID- v1.iam.gserviceaccount.com 最后还要把Run as user id设为0使得jenkins agent pod以root用户来运行以避免权限问题。最后Save即可完成配置。 5. 设置Agent连接端口 回到Manage jenkins的manage globle security里面在Agent的设置下选择指定端口填入50000 运行Jenkins CICD pipeline 现在可以构建一个CICD pipeline了。下图是构建CICD的一个流程图 这里面包括了几个步骤 往Git仓库提交代码通过hook触发jenkins任务Jenkins启动agent pod运行打包任务把打包的镜像推送到registry更新部署的manifest更新镜像的标签把应用部署到GKE 我这里将扩展一下这些步骤增加Jenkin和Github webhook的集成使得用户提交PR的时候自动触发UT检查然后当用户执行merge操作的时候来触发打包任务。这部分的内容比较多我将在下一篇博客中记录具体的操作过程。 现在我将建立一个简单的任务测试一下我们配置的Jenkins是否能正常工作。 在主页面选择新建任务然后选择pipeline然后在pipeline script里面输入以下内容 pipeline {agent{kubernetes{label slave}}environment {ZONE us-central1PROJECT_ID curious-athlete-401708}stages{ stage(test){steps{script{sh echo testing}}}} } 运行这个任务我们可以看到页面会显示自动创建一个jenkins-slave-xxxx的pod然后在这个pod上运行我们的pipeline。运行结束之后我们可以查看Job的console log可以看到成功执行了pipeline里面定义的echo testing 可见我们已经成功配置了一个Kubernetes上的分布式jenkins环境。
http://www.pierceye.com/news/931709/

相关文章:

  • 大气手机网站wordpress 添加设置
  • 公司创建网站销售wordpress缩略图支持外链图
  • php网站开发案例教程 dvdwordpress淘宝客自适应模板
  • 做建筑设计网站可以推广的网站有哪些
  • 安徽省建设厅证书查询官方网站关键词优化公司如何选择
  • io游戏网站青岛网站优化排名
  • 怎样建设网站?(怎样注册域名?如何选择主机?网站应有哪些功能模块网站备案可以变更吗
  • 欧美男女直接做的视频网站广告投放跟网站建设一样吗
  • 建网站的流程费用广州比较大的外贸公司
  • wordpress 调用站外api广州优化公司推广
  • 自贡建设专业网站设计企业网站建设专家
  • 重庆潼南网站建设哪家便宜淄博做网站电话
  • 下载官方网站合肥建站公司seo
  • 做网站还是做app好科技部政服务服平台
  • 东阿聊城做网站的公司seo顾问培训
  • 临海高端营销型网站建设地址建设网站有什么要素构成
  • wordpress 照片分享昌平网站建设推广优化seo
  • 石家庄做网站的公司有哪些做企业网站一般要多少钱
  • 电脑十大免费游戏网站万能搜索引擎入口
  • 菏泽网站建设公司排名有没有专做推广小说的网站
  • 东莞网站建设搭建因酷网站建设
  • 连云港百度推广网站建设ph域名网站
  • 网站建设营销模板网站开发招聘职位
  • 如何做网站的教程网站怎么建设以及维护
  • 信息港发布信息怎么做网站优化
  • 网页广告怎么关闭网站seo的主要优化内容
  • server2012做网站免费的图片做视频在线观看网站
  • 石狮网站建设折扣网站模板
  • 大连商城网站制作公司深圳网站改版公司
  • 网站备案需要的资料网站+做内容分发资格