Kubernetes 1.5部署sonarqube
前面几篇博文我们一直在说kubernetes的基础环境的安装及部署。在基础环境部署完成以后,我们开始尝试使用kubernetes来管理我们的应用。本篇博文通过一个简单的示例来向大家展示如何通过deployment和service来部署一个应用。我们以部署一个sonarqube为例。
sonarqube是一个代码审查工具,包含两部分,分别是web站点和数据库。我们在存放所有yml文件的目录/data/kubernetes下再创建一个sonarqube目录,并生成如下四个文件:
[root@server-116 sonarqube]# ll -h total 16K -rw-r--r--. 1 root root 682 Mar 15 23:25 mysql-sonar-dm.yml -rw-r--r--. 1 root root 209 Mar 15 23:35 mysql-sonar-svc.yml -rw-r--r--. 1 root root 669 Mar 16 09:46 sonar-dm.yml -rw-r--r--. 1 root root 151 Mar 15 23:30 sonar-svc.yml
其中mysql-sonar-dm.yml和mysql-sonar-svc.yml用于创建sonarqube使用的数据库,内容如下:
vim mysql-sonar-dm.yml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: mysql-sonar spec: replicas: 1 # selector: # app: mysql-sonar template: metadata: labels: app: mysql-sonar spec: containers: - name: mysql-sonar image: myhub.fdccloud.com/library/mysql:5.6 ports: - containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD value: "mysoft" - name: MYSQL_DATABASE value: sonardb
vim mysql-sonar-svc.yml apiVersion: v1 kind: Service metadata: name: mysql-sonar spec: type: NodePort ports: - port: 3306 targetPort: 3306 nodePort: 30002 selector: app: mysql-sonar
sonar-dm.yml和sonar-svc.yml分别用于创建sonar的pod和service,内容如下:
vim sonar-dm.yml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: sonar spec: replicas: 1 #selector: # app: sonar template: metadata: labels: app: sonar spec: containers: - name: sonar image: myhub.fdccloud.com/library/sonarqube:6.2 ports: - containerPort: 9000 env: - name: SONARQUBE_JDBC_USERNAME value: sonar - name: SONARQUBE_JDBC_PASSWORD value: sonar - name: SONARQUBE_JDBC_URL value: "jdbc:mysql://mysql-sonar:3306/sonardb?useSSL=false&useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance"
vim sonar-svc.yml apiVersion: v1 kind: Service metadata: name: sonar spec: type: NodePort ports: - port: 9000 nodePort: 30001 selector: app: sonar
启动sonar应用:
kubectl create -f /data/kubernetes/sonarqube/
通过http://<node-IP>:30001访问sonarqube: