前言
作者主页:https://blog.csdn.net/qq_48450494?type=blog
最近几天一直在学习kubeSphere Paas容器云平台,在这期间遇到了不少坑。
下面统一告诉各位,希望各位少走弯路!!!
看在作者努力排坑+分享的份上,给个三连吧!!!
看在作者努力排坑+分享的份上,给个三连吧!!!
看在作者努力排坑+分享的份上,给个三连吧!!!
坑位!!!
坑位1(配置 Kubernetes默认存储类型)
在安装kubeSphere Paas容器云平台之前(后期出一篇kubeSphere安装教程),需要一个重要的环境准备(不只有这一个环境),配置 Kubernetes 默认存储类型(storageclass)它的作用就是创建pvc之后自动创建pv与之绑定,在这里折腾了两天。。。。,最后发现官方的镜像不可用
,导致创建pvc后不会自动创建pv与之绑定。。。
坑位2(java.lang.NullPointerException)
使用kubeSphere平台的DevOps-CICD部署服务时,前面的拉取代码、构建docker镜像、上传docker镜像到Harbor仓库、拉取Harbor仓库到本地,这一切都没问题直到最后一步部署服务时始终报错(java.lang.NullPointerException
),在这里也折腾了两天。。。。就,, 最后发现这种方式(kubernetesDeploy)已经不维护了
。。。说多了都是泪aaa。。。。,
坑位2报错信息,见下图:
排坑!!!
排坑位1
修改自己的nfs-client-provisioner服务,对应的image镜像,如下:
这里的
quay.io/external_storage/nfs-client-provisioner:latest
镜像不可用,请使用
registry.cn-hangzhou.aliyuncs.com/jijic/provisioner:v4.0.2
镜像,这个镜像是我自己阿里云镜像。我放在我资源里面,大家自取吧!!下载provisioner镜像
helm包里的镜像(k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2)是国外的,国内翻墙也下载不到,贼坑。所有我为大家准备好了,放在我资源里面了,大家自取吧!!下载provisioner镜像
kind: Deployment apiVersion: apps/v1 metadata: name: nfs-client-provisioner spec: replicas: 1 selector: matchLabels: app: nfs-client-provisioner strategy: type: Recreate template: metadata: labels: app: nfs-client-provisioner spec: serviceAccountName: nfs-client-provisioner containers: - name: nfs-client-provisioner # image: quay.io/external_storage/nfs-client-provisioner:latest image: registry.cn-hangzhou.aliyuncs.com/jijic/provisioner:v4.0.2 volumeMounts: - name: nfs-client-root mountPath: /persistentvolumes env: - name: PROVISIONER_NAME value: fuseim.pri/ifs - name: NFS_SERVER value: 192.168.200.37 - name: NFS_PATH value: /data/k8s volumes: - name: nfs-client-root nfs: server: 192.168.200.37 path: /data/k8s
排坑位2
这里流水线部署阶段做一个对比就明白了
- 使用kubernetesDeploy方式:不可用的
- web界面内容:
- 对应Jenkinsfile文件内容:
stage('deploy') { agent none steps { container('maven') { kubernetesDeploy(enableConfigSubstitution: true, deleteResource: false, kubeconfigId: 'demo-kubeconfig', configs: 'yaml/gpmall.yaml') } } }
- 添加凭证方式:可用的
- web界面内容:
- 对应Jenkinsfile文件内容:
stage('deploy to dev') { steps { container ('maven') { withCredentials([ kubeconfigFile( credentialsId: env.KUBECONFIG_CREDENTIAL_ID, variable: 'KUBECONFIG') ]) { sh 'envsubst < ./gpmall.yaml | kubectl apply -f -' } } } }
看在作者努力排坑+分享的份上,给个三连吧!!!
看在作者努力排坑+分享的份上,给个三连吧!!!
看在作者努力排坑+分享的份上,给个三连吧!!!
参考资料
https://kubesphere.com.cn/docs/devops-user-guide/examples/a-maven-project/