900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 阿里云容器服务Kubernetes之Jenkins X(1)-安装部署实践篇

阿里云容器服务Kubernetes之Jenkins X(1)-安装部署实践篇

时间:2022-12-27 00:30:44

相关推荐

阿里云容器服务Kubernetes之Jenkins X(1)-安装部署实践篇

本文的部署实践过程参考了云栖文章 如何在阿里云容器服务上搭建Jenkins X并记录了更详细的过程及日志输出。

下面我们开始介绍如何在阿里云容器服务Kubernetes上快速安装部署Jenkins X。

1. 首先,需要在 阿里云容器服务控制台 创建一个Kubernetes集群,本次实践使用的环境信息如下:

master1 192.168.0.134

master2 192.168.0.135

master3 192.168.0.136

worker1 192.168.0.137

2. 登录worker1节点(也可以使用集群外的任意ecs环境)并初始化helm client

# mkdir $HOME/.kube# scp root@192.168.0.134:/etc/kubernetes/kube.conf $HOME/.kube/configroot@192.168.0.134's password:kube.conf100% 54728.4MB/s 00:00# scp root@192.168.0.134:/usr/local/bin/helm /usr/local/bin/helmroot@192.168.0.134's password:helm100% 29MB 104.0MB/s 00:00

# helm init --client-onlyCreating /root/.helmCreating /root/.helm/repositoryCreating /root/.helm/repository/cacheCreating /root/.helm/repository/localCreating /root/.helm/pluginsCreating /root/.helm/startersCreating /root/.helm/cache/archiveCreating /root/.helm/repository/repositories.yamlAdding stable repo with URL: https://kubernetes-charts.Adding local repo with URL: http://127.0.0.1:8879/charts$HELM_HOME has been configured at /root/.helm.Not installing Tiller due to 'client-only' flag having been setHappy Helming!

3. 安装 git。

yum install git -y

4. 安装jx客户端

# curl -L /jenkins-x/jx/releases/download/v1.3.464/jx-linux-amd64.tar.gz | tar xzv# mv jx /usr/local/bin

# jx versionUsing helmBinary helm with feature flag: noneNAMEVERSIONjx 1.3.464Kubernetes cluster v1.11.2kubectl v1.11.2helm client v2.9.1+g20adb27helm server v2.9.1+g20adb27gitgit version 1.8.3.1A new jx version is available: 1.3.470? Would you like to upgrade to the new jx version? No

5. 下载 cloud-environments 云环境配置文件

# mkdir -p ~/.jx# cd ~/.jx# git clone /haoshuwei/cloud-environments.git正克隆到 'cloud-environments'...remote: Enumerating objects: 526, done.remote: Total 526 (delta 0), reused 0 (delta 0), pack-reused 526接收对象中: 100% (526/526), 229.61 KiB | 261.00 KiB/s, done.处理 delta 中: 100% (263/263), done.

6. 安装jenkins-x-platform到Kubernetes集群

# jx install --provider=kubernetes --domain

访问日志中提示的GitHub URL 并生成API Token:

/settings/tokens/new?scopes=repo,read:user,read:org,user:email,write:repo_hook,delete_repo

新打开一个终端窗口查看jenkins-x-platform各个组件的安装情况:

# kubectl get ing -n jxNAME HOSTSADDRESS PORTSAGEchartmuseum chartmuseum. xx.xx.xxx.xxx 80 49sdocker-registry docker-registry. xx.xx.xxx.xxx 80 49sjenkins jenkins. xx.xx.xxx.xxx 80 48smonocular monocular. xx.xx.xxx.xxx 80 49snexus nexus. xx.xx.xxx.xxx 80 49s

绑定hosts:

# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6xx.xx.xxx.xxx chartmuseum.xx.xx.xxx.xxx docker-registry.xx.xx.xxx.xxx jenkins.xx.xx.xxx.xxx monocular.xx.xx.xxx.xxx nexus.

查看jenkins-x-platform组件的安装情况:

[root@iZj6cbxzol17fruawjffz1Z ~]# kubectl get pod -n jxNAMEREADYSTATUS RESTARTS AGEjenkins-67d7cc5fcd-x66861/1 Running 08mjenkins-x-chartmuseum-84b895f4c5-d2dgc 1/1 Running 08mjenkins-x-docker-registry-6b6f6d67b6-kn9ml 1/1 Running 08mjenkins-x-heapster-65fd697bb-4czvz2/2 Running 08mjenkins-x-mongodb-784f66c466-zz4290/1 Pending 08mjenkins-x-monocular-api-58796c57c9-xk8rs 0/1 CrashLoopBackOff 58mjenkins-x-monocular-prerender-5848c74fdc-48ppm 1/1 Running 08mjenkins-x-monocular-ui-c4467bdc5-ttbr6 1/1 Running 08mjenkins-x-nexus-b7454965d-nvlqb 1/1 Running 08mpipelinecontroller-6b5b8d9f47-457xx 1/1 Running 08m

发现jenkins-x-mongodb和jenkins-x-monocular-api组件启动异常,这是因为jenkins-x-monocular-api依赖jenkins-x-mongodb, 而jenkins-x-mongodb在创建pvc资源时找不到default storage class而导致的;编辑mongodb-pvc.yaml创建新pvc:

# cat mongodb-pvc.yamlkind: PersistentVolumeClaimapiVersion: v1metadata:name: jenkins-x-mongodbnamespace: jxspec:accessModes:- ReadWriteOncestorageClassName: alicloud-disk-availableresources:requests:storage: 20Gi

# kubectl get pvc -n jxNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEjenkins Boundd-j6c8mnao06oovpk0vy4h 30Gi RWO alicloud-disk-available 18mjenkins-x-chartmuseum Boundd-j6c9szfy8smf4ak05hm9 20Gi RWO alicloud-disk-available 18mjenkins-x-docker-registry Boundd-j6cc913ulnzfa7drkru9 100GiRWO alicloud-disk-available 18mjenkins-x-mongodb Pending18mjenkins-x-nexus Boundd-j6cfrymuj8lrj2pvz3v0 20Gi RWO alicloud-disk-available 18m

# kubectl delete pvc jenkins-x-mongodb -n jxpersistentvolumeclaim "jenkins-x-mongodb" deleted

# kubectl create -f mongodb-pvc.yamlpersistentvolumeclaim/jenkins-x-mongodb created

# kubectl delete pods jenkins-x-mongodb-784f66c466-zz429 -n jxpod "jenkins-x-mongodb-784f66c466-zz429" deleted# kubectl delete pods jenkins-x-monocular-api-58796c57c9-xk8rs -n jxpod "jenkins-x-monocular-api-58796c57c9-xk8rs" deleted

全部组件运行正常后可以看到jenkins-x-platform的安装进程进入下一步jenkins CLI API Token的配置:

根据提示获取token填入后, 安装部署完成:

7. 查看ingress暴露出来的服务url

# jx get urlsName URLjenkins http://jenkins.jenkins-x-chartmuseumhttp://chartmuseum.jenkins-x-docker-registry http://docker-registry.jenkins-x-monocular-api http://monocular.jenkins-x-monocular-ui http://monocular.nexus http://nexus.

访问http://jenkins.:

访问http://monocular.:

访问http://nexus.:

docker-registry服务的访问有问题(暂时未花过多时间调试), 但我们会在下一篇阿里云容器服务Kubernetes之Jenkins X(2)-自动化CICD实践篇中演示如何让jenkins x使用阿里云容器镜像服务来管理容器镜像;阿里云容器服务Kubernetes之Jenkins X(2)-自动化CICD实践篇 中也会使用jenkins x创建一个spring应用并演示如何使用GitOps的理念管理和发布一个云原生应用。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。