前面幾篇博文我們一直在說kubernetes的基礎環(huán)境的安裝及部署。在基礎環(huán)境部署完成以后,我們開始嘗試使用kubernetes來管理我們的應用。本篇博文通過一個簡單的示例來向大家展示如何通過deployment和service來部署一個應用。我們以部署一個sonarqube為例。
目前創(chuàng)新互聯(lián)已為1000多家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)頁空間、網(wǎng)站托管維護、企業(yè)網(wǎng)站設計、托克托網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
sonarqube是一個代碼審查工具,包含兩部分,分別是web站點和數(shù)據(jù)庫。我們在存放所有yml文件的目錄/data/kubernetes下再創(chuàng)建一個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用于創(chuàng)建sonarqube使用的數(shù)據(jù)庫,內(nèi)容如下:
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 p_w_picpath: 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分別用于創(chuàng)建sonar的pod和service,內(nèi)容如下:
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 p_w_picpath: 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://