一個簡單的Kubernetes應用部署示例

說明

咱們經過一個示例來演示一下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 ./

訪問:

http://$node_ip:30001/demo

相關文章
相關標籤/搜索