咱們經過一個示例來演示一下kubernetes部署應用的基本配置。node
這個示例相對比較簡單,就是一個tomcat應用加上一個mysql數據庫mysql
在tomcat裏運行一個簡單的webappp,這個app會訪問Mysql獲取數據。並展現在頁面上。爲了演示和簡化的目的,只要程序正確鏈接到了數據庫上,它就會自動完成對應的table的建立與初始化數據的準備工做。因此當咱們經過瀏覽器訪問此應用的時候,就會顯示一個表格的頁面,數據則來自數據庫。web
咱們在/root/k8s-yaml/目錄下建立一個webapp的目錄,在這個目錄裏面建立四個文件:sql
. ├── mysql-dm.yaml ├── mysql-svc.yaml ├── myweb-dm.yaml └── myweb-svc.yaml
這四個文件的內容分別以下:數據庫
mysql-dm.yaml:api
apiVersion: apps/v1beta1 kind: Deployment metadata: name: mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 ports: - containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD value: "123456"
mysql-svc.yaml:瀏覽器
apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql``
myweb-dm.yaml:tomcat
apiVersion: apps/v1beta1 kind: Deployment metadata: name: myweb spec: replicas: 2 selector: matchLabels: app: myweb template: metadata: labels: app: myweb spec: containers: - name: myweb image: kubeguide/tomcat-app:v1 ports: - containerPort: 8080 env: - name: MYSQL_SERVICE_HOST value: 'mysql' - name: MYSQL_SERVICE_PORT value: '3306
myweb-svc.yaml:app
apiVersion: v1 kind: Service metadata: name: myweb spec: type: NodePort ports: - port: 8080 nodePort: 30001 selector: app: myweb
咱們經過以下方式啓動:webapp
kubectl apply -f ./
訪問: