记录关于Devops运维,虚拟化容器云计算,数据库,网络安全等各方面问题。
kubesphere3.2.1组件devops流水线使用Sonarqube代码质量分析一,环境说明。 1,主机配置。IP系统主机名称kubernetes信息192.168.1.23Centos7.9centos7-23master+worker节点192.168.1.31Centos7.9centos7-31NFS存储+worker节点 2,kubesphere信息。两台主机使用kk工具安装kubesphere3.2.1,然后安装应用商店,devops组件。这样就可以安装sonarqube代码质量分析 二,sonar具体安装过程。 1,kubesphere官网有安装说明,但是kubesphere3.2.1版本使用官方说明操作,容器部署后,会发现sonar容器连接pgsql数据库时,提示登陆数据库授权失败。 一直没有搞明白是helm的哪里配置文件出错。官方安装说明地址如下:将 SonarQube 集成到流水线 (kubesphere.io) 2,既然官方没法使用,那就只能自己找helm仓库,然后重装安装。 3,在Artifact Hub网站上面找到了一个sonar仓库信息,经测试可以正常安装。 4,helm具体安装命令如下:helm repo add sonarqube https://SonarSource.github.io/helm-chart-sonarqubehelm upgrade --install sonarqube sonarqube/sonarqube --version 1.2.5+179 -n kubesphere-devops-system --create-namespace --set service.type=NodePort 5,查看s...
Jenkins给k8s部署YAML文件传参数方法一,环境说明。 1,k8s集群。 2,Jenkins流水线部署在k8s环境中。二,参数问题。 1,Jenkins使用CICD时需要传参数给k8s的YAML文件。 2,有两种方法,如下面的Jenkinsfile内容,只选取一部分。 可以看出来,parameters中有两个参数:APP_NAME,PROJECT_NAME。 另外enviroment中不少参数,其中PROJECT_VERSION参数指向了APP_NAME,这里需要使用双引号。 stage('image-push') {
agent none
steps {
container('base') {
sh 'docker tag ui-web:latest $REGISTRY/$ALIYUNHUB_NAMESPACE/ui-web:SNAPSHOT-$BUILD_NUMBER'
withCredentials([usernamePassword(credentialsId : 'aliyun-id' ,passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,)]) {
sh 'echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin'
sh 'docker push $REGISTRY/$ALIYUNHUB_NAMESPACE/ui-web:SNAPSHOT-$BUILD_NUMBER'
}
}
}
} environment { DOCKE...
k8s部署pod和service时yaml传参问题的解决 1.问题提出 我们有N多的微服务需要部署,但是往k8s中部署的yaml文件没必要写N个,因为整个文件的框架是定的,只是其中的服务名字,pod名字,负载的个数,端口等需要变化,怎么解决呢? 2. 解决方案 对于我们程序员第一想到就是传参。那么怎么穿参数呢? 即脚本调用这个yaml文件的时候怎么把参数穿进去? 3. 总结 其实就是使用了linux的基础命令,但是这个方案时不错的。
kubesphere3+jenkins实现cicd部署nodejs前端项目一,具体环境. 1,两台主机,centos7+kubesphere3.2.1+devops-jenkins,his是项目企业空间名称。 2,演示demo,是ruoyi的ui前端,地址: https://gitee.com/micoder/demo.git,已经写好实现的Jenkinsfile,Dockerfile,deploy.yaml。 3,需要配置 gitee-id,凭证为 gitee的账号密码信息。k8s-demo是kubeconfig,是部署deploy.yaml资源时使用的凭证。aliyun-id是镜像仓库的账号密码的领证,这几个都是在流水线中的凭证里面创建的。这些凭证就是jenkinsfile中用来变量替换的。 4,还需要一个 密保字典 aliyun-docker-id ,这个是给微服务YAML文件应用部署时拉取镜像需要的,如果不需要,除非你是公开镜像。如下图: 5,关于kubesphere登陆账号: devops-yp ,注意如果只是在 '企业空间成员' 中添加了账号,并且给了最大权限,那可能会出现,流水线最后一步k8s部署YAML文件时会出错误,提示没有对应his空间资源使用权限。 可以把devops-yp账号再加入到 his '项目成员' ,如果还是提示一样的问题。可以使用admin账号登陆,到 集群管理 ----> 配置字典 ----> kubesphere-controls-system -----> 找到自己...
jenkins升级导致csrf问题报错403由于将jenkins由2.204升级到最新版本后,调用接口报错,错误如下 2020-10-29 06:11:32.708+0000 [id=9] WARNING hudson.security.csrf.CrumbFilter#doFilter: Found invalid crumb 62600442318862ac61c4c41c1f5de02c60b5de666a13a04d1212be85c8e64a70.
If you are calling this URL with a script, please use the API Token instead. More information: https://jenkins.io/redirect/crumb-cannot-be-used-for-script
2020-10-29 06:11:32.709+0000 [id=9] WARNING hudson.security.csrf.CrumbFilter#doFilter: No valid crumb was included in request for
/job/build-tcpjw-sso-uaa-web-master-local-prod-paas/buildWithParameters by admin. Returning 403.
由于报错推测是安全问题引起,应该是csrf问题,查看更新日志,如下 由于 jenkins不能正常使用,所以之前修改过流水线配置的,那么jenkins中的配置,也未变化,需要重装配置。1、方法一,未验证,好像不能解决问题。 就是修改 config.xml中的配置,再重启,jenkins。测试没有什么用。或是采用启动命令中添加参数,下面这种方法:取消 csrf 验证需要在启...
kubesphere查看MinIO与打镜像前的原始代码包需求: 用户镜像启动有问题。问了排查原因,我需要看下打镜像前用户上传的原始代码包。 操作过程如下: 在kubesphere中,用户上传的代码包是放在minio中,然后再进行后续的打镜像操作。 所以问题转变为查找minio的登录信息 # kubectl get pod -n kubesphere-system
NAME READY STATUS RESTARTS AGE
etcd-65796969c7-vb67h 1/1 Running 0 89d
ks-apiserver-67ccdf6dfd-grshf 1/1 Running 0 31d
ks-console-b4df86d6f-qhpfm 1/1 Running 1 89d
ks-controller-manager-8bc6554fb-w6klz 1/1 Running 0 8...
【kubesphere】Deploy to kubernets阶段报错一、问题背景 最近在学习使用kubesphere进行devops,在编写好流水线运行之后,报了如下错误: Starting Kubernetes deployment
Loading configuration: /home/jenkins/agent/workspace/api-appjg7tc/demo-deplpy/deploy-yaml/dev-api.yaml
ERROR: ERROR: java.lang.RuntimeException: io.kubernetes.client.openapi.ApiException: Bad Request
hudson.remoting.ProxyException: java.lang.RuntimeException: io.kubernetes.client.openapi.ApiException: Bad Request
at com.microsoft.jenkins.kubernetes.wrapper.ResourceManager.handleApiExceptionExceptNotFound(ResourceManager.java:180)
at com.microsoft.jenkins.kubernetes.wrapper.V1ResourceManager$DeploymentUpdater.getCurrentResource(V1ResourceManager.java:213)
at com.microsoft.jenkins.kubernetes.wrapper.V1ResourceManager$DeploymentUpdater.getCurrentResource(V1ResourceManager.java:201)
at com.microsoft.jenkins.kubernetes.wrapper.ResourceManager$ResourceUpdater.createOrApply(ResourceManager.java:93)
at com....
kubesphere3.2中jenkins的部署应用到k8s功能问题1,kubesphere3中自带的jenkins中kubernetesDeploy 插件的坑,真是让人脑火。 2,不知道是不是因为之前删除过jenkins,又重新安装的原因,整个流水线到部署k8s环境上时,一真有毛病。不是报 应用部署的YAML文件有问题,就是报一堆其它错误。3,一个应用部署的 Service 与Deployment ,都是先用UI界面,部署完后,导出来的YAML,再删除一个不需要的配置项目,尽然,再用UI 工具 从 YAML部署应用时,尽然报一堆错误,真是无语。搞的本人对K8S的YAML配置项都有怀疑了,虽然YAML文件还是挺bianTai的。4,终于把YAML文件搞好,测试UI,还是Kubectl命令部署都没问题了。结果 jenkins的插件又被坑了两天。整个流水线,一会提示,运行成功,可到UI上面一看,什么服务都没有部署。把YAML文件放到UI中执行,也提示成功,结果P的服务都没有。5,根据官方资料,提示如下:也就是说,这个插件没用了。以后直接使用kubect命令部署。为 DevOps CD 功能提供限制语句。背景从 v3.0.0 开始,在 DevOps 组件中,Jenkins 插件kubernets-cd 的版本是2.3.1。如果您尝试查看它的提交历史记录,您会发现它已停止维护。上一次发...
kubesphere3.2中jenkins的nodejs模板pod升级到nodejs161,kubesphere3.2中的jenkins流水线使用的pod最高版本还是nodejs8,实在是太旧了。2,经过折腾,可以将nodejs删除后,再安装新版本的nodejs。kubesphere的jenkins流水线在工作过程中, 会自动创建两个pod,其中一个是jnlp-slave,一个模板pod,用来运行流水线指令,所以只需要在模板pod中安装或是升级nodejs就可以了。3,具体流水线方法如下:pipeline { agent { node { label 'nodejs' } } stages { stage('pull-code') { agent { node { label 'nodejs' } } steps { container('nodejs') { sh 'yum -y remove nodejs' sh 'curl -sL https://rpm.nodesource.com/setup_16.x | bash' sh 'yum -y install nodejs-16.1.0 ...
nodejs 源码spec打包rpm并使用RPM包安装node.js RPM spec, Blanch, Status, RPM, :----------, :----------:, :----------:, master (v9, Current), , , v8.x (v8, LTS), , , v6.x (v6, LTS), , , v4.x (v4, LTS), , , - node.js rpm spec : https://github.com/kazuhisya/nodejs-rpm ¶node.js source : https://nodejs.org/dist/Compiled Package ¶You can find prebuilt rpm binary from here(el7 and fc24 or higher)Stable Release: FedoraCopr khara/nodejs CoprLTS Release: FedoraCopr khara/nodejs-lts Coprel7:$ sudo curl -sL -o /etc/yum.repos.d/khara-nodejs.repo https://copr.fedoraproject.org/coprs/khara/nodejs/repo/epel-7/khara-nodejs-epel-7.repo
$ sudo yum install -y nodejs nodejs-npm
fc24 or higher:$ sudo dnf copr enable khara/nodejs
$ sudo dnf install -y nodejs nodejs-npm
Building the RPM ¶Distro support ¶Tested ¶RHEL/CentOS 7 x86_64Fedora 25 x86_64 or higherProbably it works ...
最新评论