作者文章归档:dhr2333

Docker_基本概念


官方文档:https://docs.docker.com/get-started/overview/

简介

Docker基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。 两张图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容

Read more

K8S_应用_部署MongoDB复制集


MongoDB集群部署模式

mongodb采用副本集方式部署(3副本 1primary 2 secondary)

使用kubernetes的mongo集群应考虑需要连接mongo的服务均部署在kubernetes内部,才能通过coreDNS域名或端口访问。

整体架构如下图所示:

使用statefulset模式部署mongod集群具体实现

集群创建mongo service account

$ cat mongo-rbac.yaml 
apiVersion: v1
kind: ServiceAccount
metadata:
  name: mongo
  namespace: mongo
-

Read more

K8S_基础设施_YAML模板


概述

该文档主要用于记录本人常用的Yaml文件模板

Kubernetes

RBAC

---
apiVersion: v1  # 该模板与template-deployment和template-pv并不关联
kind: ServiceAccount  # 创建一个serviceaccount命令,每个命名空间被创建时其实都会有一个default的serviceaccount.
metadata:
  name: prometheus  # 令牌的名称,该名称是需要被statefulset或者deployment引用的,与containers同级,表达为serviceAccountName: p

Read more

Sonarqube_实现项目质量管理


概述

SonarQube是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码异味。 该文档选用sonarqube长期更新版本8.9.6 LTS。版本推荐与文章示例一致,作者尝试过使用8.9.8-community版本,无法正常启动。 数据库选用postgresQL,因为后续版本Sonarqube不再支持Mysl。 参考Sonarqube官方文档

部署

整个项目完全采用kubernetes进行部署,根据列出的Yaml文件及步骤,调整镜像及持久卷供应就可以实现部署。

目录结构

$ ll /usr/local/wlhiot/container/kubernetes/basic/sonarqube

Read more

Jenkins_CICD_Pipeline工作流


虽然Jenkins推荐的最佳实践是使用Pipeline,但由于Pipeline是将Jenkginsfile侵入到代码中。当项目数量较多时,其实不太方便管理,所以我还是倾向将所有构建由Jenkins来完成(我收回这句话,所以的Jenkinsfile可以统一在一个项目中进行管理,且根据项目不同使用不同的Jenkinsfile),但我还是示范一个Pipeline让大家体验一下。不推荐直接用我的模板,每个公司的流程可能略有不同,需要根据实际情况调整。

pipeline {
    agent any
    tools {
        maven "Maven3.8.2"
  

Read more

Jenkins_集成_与dingtalk集成实现构建即推送钉钉消息


与dingtalk(钉钉)集成

  1. 下载'DingTalk'插件:点击Jenkins'系统管理','插件管理',搜索'DingTalk'
  2. 钉钉添加机器人:进入一个群组,点击'群设置',点击'智能群助手'后'添加机器人',选择'自定义(通过webhook接入自定义服务)' 钉钉创建机器人
  3. 修改'DingTalk'插件配置:在Jenkins'系统管理','系统管理'中,修改配置如下: Jenkins系统配置
  4. 修改Job配置以根据需要自动发送钉钉推送,自定义内容遵循markdown格式 Job任务配置
  5. 实现效果Job集成钉钉实现效果

Read more

Jenkins_CICD_实现CI/CD流程


部署

所有服务均以docker或者kubernetes运行。

$ docker run -d --name jenkins-server -p 8005:8080 -v /usr/local/wlhiot/mount/jenkins:/var/jenkins_home 192.168.254.29:8001/library/jenkins:2.289.3

在宿主机创建1000权限的目录并挂载,正常运行后浏览器输入127.0.0.1:8005访问Jenkins服务。

查看宿主机的/usr/local/wlhiot/mount/jenkins/secrets/initialAdminPassw

Read more