首页 > 其他分享 >kubernetes 部署SonarQube

kubernetes 部署SonarQube

时间:2023-06-04 12:55:08浏览次数:48  
标签:ingress postgres kubernetes 部署 SonarQube cat yaml sonarqube

1.PostgreSQL

参考博客:https://hanggi.me/post/kubernetes/k8s-postgresql

1.1.配置PostgreSQL的ConfigMap

cat > postgres-configmap.yaml <<EOF
apiVersion: v1
kind: ConfigMap
metadata:
  name: postgres-config
  namespace: kube-ops
  labels:
    app: postgres
data:
  POSTGRES_DB: sonarDB
  POSTGRES_USER: postgresadmin
  POSTGRES_PASSWORD: admin12345
EOF
kubectl apply -f postgres-configmap.yaml

1.2.持久化卷Persistent StorageVolume

cat > postgres-volume.yaml <<EOF
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: postgres-pv-claim
  namespace: kube-ops
  labels:
    app: postgres
spec:
  storageClassName: nfs-storage
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
EOF
kubectl apply -f postgres-volume.yaml

1.3.PostgreSQLDeployment

cat > postgres-deployment.yaml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres-deployment
  namespace: kube-ops
spec:
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: postgres
  replicas: 1
  template:
    metadata:
      labels:
        app: postgres
    spec:
      containers:
        - name: postgres
          image: postgres:11.7
          imagePullPolicy: "IfNotPresent"
          ports:
            - containerPort: 5432
          envFrom:
            - configMapRef:
                name: postgres-config
          volumeMounts:
            - mountPath: /var/lib/postgresql/data
              name: postgredb
      volumes:
        - name: postgredb
          persistentVolumeClaim:
            claimName: postgres-pv-claim
EOF
kubectl apply -f postgres-deployment.yaml

1.4.PostgreSQLService

cat > postgres-service.yaml <<EOF
apiVersion: v1
kind: Service
metadata:
  name: postgres-service
  namespace: kube-ops
  labels:
    app: postgres
spec:
  type: ClusterIP
  ports:
  - port: 5432
    targetPort: 5432
    protocol: TCP
  selector:
   app: postgres
EOF
kubectl apply -f postgres-service.yaml

2.部署SonarQube

2.1.持久化卷Persistent StorageVolume

cat > sonarqube-volume.yaml <<EOF
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: sonarqube-data
  namespace: kube-ops
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: nfs-storage
  resources:
    requests:
      storage: 10Gi
EOF
kubectl apply -f sonarqube-volume.yaml

2.2.SonarQubeDeployment

cat > sonarqube-deployment.yaml  <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sonarqube
  namespace: kube-ops
  labels:
    app: sonarqube
spec:
  replicas: 1
  selector:
    matchLabels:
      app: sonarqube
  template:
    metadata:
      labels:
        app: sonarqube
    spec:
      initContainers:
      - name: init-sysctl
        image: busybox
        imagePullPolicy: IfNotPresent
        command: ["sysctl", "-w", "vm.max_map_count=262144"]
        securityContext:
          privileged: true
      containers:
      - name: sonarqube
        image: sonarqube:lts
        ports:
        - containerPort: 9000
        env:
        - name: SONARQUBE_JDBC_USERNAME
          value: "postgresadmin"
        - name: SONARQUBE_JDBC_PASSWORD
          value: "admin12345"        
        - name: SONARQUBE_JDBC_URL
          value: "jdbc:postgresql://postgres-service:5432/sonarDB"
        livenessProbe:
          httpGet:
            path: /sessions/new
            port: 9000
          initialDelaySeconds: 60
          periodSeconds: 30
        readinessProbe:
          httpGet:
            path: /sessions/new
            port: 9000
          initialDelaySeconds: 60
          periodSeconds: 30
          failureThreshold: 6
        resources:
          limits:
            cpu: 2000m
            memory: 2048Mi
          requests:
            cpu: 1000m
            memory: 1024Mi
        volumeMounts:
        - mountPath: /opt/sonarqube/conf
          name: data
          subPath: conf
        - mountPath: /opt/sonarqube/data
          name: data
          subPath: data
        - mountPath: /opt/sonarqube/extensions
          name: data
          subPath: extensions
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: sonarqube-data
EOF
kubectl apply -f sonarqube-deployment.yaml

2.3.SonarQubeService

cat > sonarqube-service.yaml <<EOF
apiVersion: v1
kind: Service
metadata:
  name: sonarqube
  namespace: kube-ops
  labels:
    app: sonarqube
spec:
  type: ClusterIP
  ports:
    - name: sonarqube
      port: 9000
      targetPort: 9000
      protocol: TCP
  selector:
    app: sonarqube
EOF
kubectl apply -f sonarqube-service.yaml

2.4.ingress

cat > sonarqube-ingress.yaml <<EOF
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: sonarqube
  namespace: kube-ops
  annotations:
    nginx.ingress.kubernetes.io/service-weight: ""
spec:
  ingressClassName: nginx
  rules:
    - host: sonarqube.ingress.com
      http:
        paths:
        - backend:
            service:
              name: sonarqube
              port:
                number: 9000
          path: /
          pathType: Prefix
EOF
kubectl apply -f sonarqube-ingress.yaml

# 不要忘记本地Windows进行域名解析

登录:http://sonarqube.ingress.com

账户密码:admin/admin

标签:ingress,postgres,kubernetes,部署,SonarQube,cat,yaml,sonarqube
From: https://www.cnblogs.com/-k8s/p/17455543.html

相关文章

  • 4、数据库:MySQL部署 - 系统部署系列文章
          MySQL数据库在其它博文中有介绍,包括学习规划系列。今天就讲讲MySQL的部署事情。一、先下载MySQL数据库;到下面这个网址去下载数据库,这里下载的社区版:https://dev.mysql.com/downloads/installer/二、安装数据库;打开EXE文件;       ......
  • 云原生之使用Docker部署TeaKKi知识文档管理工具
    (云原生之使用Docker部署TeaKKi知识文档管理工具)一、TeaKKi介绍Teakki是一款知识文档管理工具,当前支持企业本地私有化部署,免费试用有效期30天。适用于团队,企业的知识协作和管理.,为你构建团队的知识库!TeaKKi专注知识知识协作,让团队知识协作变得简单高效。二、检查docker......
  • 使用 HTTP Boot,可以批量部署操作系统和软件,提高管理效率和降低成本。下面是常用的几种
    使用HTTPBoot,可以批量部署操作系统和软件,提高管理效率和降低成本。下面是常用的几种批量部署方案:使用WindowsDeploymentServices(WDS):WDS是一种基于微软技术的网络引导服务,可以快速部署Windows操作系统和应用程序。通过配置WDS服务器和映像文件,可以实现从远程服务器引......
  • HTTP Boot(即基于HTTP的引导)是一种网络引导协议,它使用HTTP作为文件传输协议,支持远程引
    HTTPBoot(即基于HTTP的引导)是一种网络引导协议,它使用HTTP作为文件传输协议,支持远程引导、安装和部署操作系统和应用程序。与传统的PXE(PrebooteXecutionEnvironment)方式相比,HTTPBoot具有更高的灵活性、可扩展性和安全性。HTTPBoot可以通过以下步骤实现:启动计算机后,BIOS会向......
  • GitHub+hexo部署静态网站
    前言由于有些文章可能过不了shen,有些大概率会挂,部署在GitHub当作备份还有就是自己购买域名和服务器,搭建博客的成本实在是太高了,不光是说这些购买成本,还要定期的维护它,对于大多数人来说,是没有这样的精力和时间什么是Hexo?Hexo是一个快速、简洁且高效的博客框架。Hexo使用Markd......
  • winows 下iis+nginx +php 部署
    我们服务器使用的server2008,由于iis里还有asp.net网站,php就想用iis做代理转发到nginx来处理请求。第一步:我为了省事,直接安装的phpstudy 下载地址:https://www.xp.cn/第二步:安装好后,设置运行fast-cgi,可以使用以下命令做bat,指定端口运行fast-cgi,我指定端口为9003ECHOSt......
  • 1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建
    KVM安装部署KVM做单机管理虚拟机,Openstack集群管理虚拟机docker单机管理容器,k8s集群管理容器宿主机环境准备在vmware安装linux系统,并在设置中开启虚拟化CPU开启虚拟化一:开启虚拟化引擎两项内容二:提高内存和处理器至8G验证开启虚拟化grep-Em1"vmx|svm"/proc/cpuinfoInt......
  • Gitlab 本地部署全过程、Gitlab Pages、企业版 PATCH
    Gitlab官网目前提供了EnterpriseEdition和CommunityEdition两种版本,分别对应linux系统的软件包gitlab-ee和gitlab-ce。看名字就知道,gitlab-ee是收费的功能更加丰富的版本。此外,企业版根据用户付费情况的不同,又分为了Starter、Premiun、Ultimate三种PLAN,可以在htt......
  • VMware HCX 3.5.3 部署手册
    文章中图片可能有点糊,Word版本下载地址,文档只是之前测试时的截图,难免出现错误,望谅解:链接:https://pan.baidu.com/s/1md8Q4sBlW-osRgWg7GVY6w提取码:uniy部署前提HCX在on-premise部署时共包含两类组件:HCXcloudmanager:第一台被部署出来的虚拟机,通过VMware-HCX-Installer-3.......
  • 云原生之使用Docker部署Dillinger个人文本编辑器
    (云原生之使用Docker部署Dillinger个人文本编辑器)一、Dillinger介绍Dillinger是一个基于云、可移动的离线存储、基于AngularJS的H5Markdown编辑器。二、检查本地docker状态[root@node~]#systemctlstatusdocker●docker.service-DockerApplicationContainerEng......