本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
kubesphere3.2使用devops流水线进行sonar代码分析一,环境说明。 1,Centos7+kubesphere3.2+devops组件+Jenkins+Sonarqube. 2,kubesphere最新版本按照官网的说明来安装sonar,会出现无法连接pgsql数据库的问题。 3,可以按此文说明安装 SONAR(micoder.cc),可以正常安装使用。二,具体步骤。 1,由于安装的sonar-9.2版本,在使用maven时,sonar会出现java版本不对的报错。[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar (default-cli) on project devops-sample: Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar failed: An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar: java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 [ERROR] --------------...
ArgoCD简介 Argo CD是用于Kubernetes的声明性GitOps持续交付工具,应用程序定义,配置和环境应为声明性的,并应受版本控制,应用程序部署和生命周期管理应该是自动化、可审核且易于理解。 Argo CD遵循GitOps模式,该模式使用Git仓库作为定义所需应用程序状态的真实来源。 Argo CD可在指定的目标环境中自动部署所需的应用程序状态,应用程序部署可以在Git提交时跟踪对分支,标签的更新,或固定到清单的特定版本。 官网:https://argoproj.github.io/ ArgoCD架构图: Argo CD被实现为kubernetes控制器,该控制器持续监视正在运行的应用程序,并将当前的活动状态与所需的目标状态(在Git存储库中指定)进行比较。当已部署应用程序的运行状态偏离目标状态时将被argoCD视为OutOfSync。 Argo CD报告并可视化差异,同时提供了自动或手动将实时状态同步回所需目标状态的功能。在Git存储库中对所需目标状态所做的任何修改都可以自动应用并同步到指定的目标环境中。 ArgoCD支持的Kubernetes 配置清单包括helm charts、kustomize或纯YAML/json文件等。 本篇文章涉及内容: 使用kubesphere devops实现CI部分, CD部分由argoCD完成; ArgoCD持续监测git仓库某个目录下yaml文件变动,自...
k8s部署pod和service时yaml传参问题的解决 1.问题提出 我们有N多的微服务需要部署,但是往k8s中部署的yaml文件没必要写N个,因为整个文件的框架是定的,只是其中的服务名字,pod名字,负载的个数,端口等需要变化,怎么解决呢? 2. 解决方案 对于我们程序员第一想到就是传参。那么怎么穿参数呢? 即脚本调用这个yaml文件的时候怎么把参数穿进去? 3. 总结 其实就是使用了linux的基础命令,但是这个方案时不错的。
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的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 ...
kubesphere整合jenkins升级方法一,kubesphere3.2中的devops组件无法工作。 1,kubeshpere整合了jenkins,只是版本相对低此,这前可能我这里升级了jenkins中的组件,导致jenkins容器启动不了。 2,查看相关容器日志信息,报错如下:二,处理步骤。 1),第一种方法,找到devops-jenkins容器所挂载目录中,将报错的插件删除掉,然后重建容器。 2),第二种方法,直接升级jenkins的war包到新版,下面是第二种方法。 1,遇到这种坑,查看了devops-jenkins相关的pvc与pv信息, 2,由于kubesphere使用的kk工具安装的,因此使用是本地存储,工具软件为openebs,可以看到相关的pv挂载目录。 3,但是查看本机的存储目录与部署的YAML文件信息,Jenkins的war包目录位于/usr/share/jenkins/jenkins.war,此目录容器未挂载, 但是这个文件的子目录/usr/share/jenkins/ref/secrets却是挂载到pv了。因此如果把/usr/shar/jenkins目录挂载后,那么就是个空目录, 别的挂载就没法使用了。挂载Jenkins war目录升级的方法就不行了(当然要挂载的话,kubesphere只能使用子目录挂载的方法)。 4,经过查看  kubesphere/ks-jenkins:v3.2.0-2.249.1 镜像信息,找到了容器启动 jenkins的脚本文件存...
kubesphere的base容器安装nodejs方法1,kubesphere自带的nodejs模板容器,太旧了,想升级下,还是比较麻烦的。2,自己在流水线中将base容器中安装node-16版本,这样就比较新了,这种方法安装国内下载rpm包速度慢,      可以在k8s中安装一个nginx服务,将nodejs的rpm包挂载到nginx服务中,这样内部访问速度就快了。3,Jenkinsfile内容如下:pipeline {  agent any  stages {    stage('checkout') {      agent none      steps {        container('base') {          git(url: 'https://gitee.com/micoder/simple-node-js-react-npm-app.git', branch: 'master', changelog: true, poll: false)        }      }    }    stage('build') {      agent none      steps {        container('base') {   sh 'curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo'         ...
 
0

Kubernetes三种探针

发表者:admin分类:云计算容器2022-01-06 23:29:30 阅读[99]
Kubernetes三种探针 k8s支持存活livenessProbe和就绪readinessProbe两种探针,两种探针都支持以下三种方式 一、exec 通过执行shell命令的方式,判断退出状态码是否是0,示例: exec: command: - cat - /tmp/healthy 二、tcp 通过TCP请求的方式,是否能建立tcp连接,示例: tcpSocket: port: 8080 initialDelaySeconds: 15 periodSeconds: 20 三、httpGet 通过发起http请求,判断返回结果是否符合预期,示例:... livenessProbe: httpGet: path: /healthz port: 8080 httpHeaders: - name: X-Custom-Header value: Awesome initialDelaySeconds: 3 periodSeconds: 3 initialDelaySeconds指定了容器启动后多少秒后进行探测 periodSeconds指定每隔多少秒进行探测   Liveness 探测 Liveness 探测让用户可以自定义判断容器是否健康的条件。如果探测失败,Kubernetes 就会重启容器。还是举例说明,创建如下 Pod:启动进程首先...
docker搭建grafana+loki+promtail日志收集系统 1.拉取镜像docker pull grafana/grafana:7.4.3 docker pull grafana/promtail:2.1.0 docker pull grafana/loki:2.1.0 2.loki搭建 1)新建配置文件 创建文件:mkdir -p /usr/local/docker/loki 配置文件: vi /usr/local/docker/loki/loki-config.yaml auth_enabled: false server:  http_listen_port: 3100  grpc_listen_port: 3110  grpc_server_max_recv_msg_size: 1073741824  #grpc最大接收消息值,默认4m  grpc_server_max_send_msg_size: 1073741824  #grpc最大发送消息值,默认4m ingester:  lifecycler:    address: 127.0.0.1    ring:      kvstore:        store: inmemory      replication_factor: 1    final_sleep: 0s  chunk_idle_period: 5m  chunk_retain_period: 30s  max_transfer_retries: 0  max_chunk_age: 20m  #一个timeseries块在内存中的最大持续时间。如果timeseries运行的时间超过此时间,则当前块将刷新到存储并...
    总共54页,当前第1页 | 页数:
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11