說明
我們通過一個示例來演示一下kubernetes部署應用的基本配置。
這個示例相對比較簡單,就是一個tomcat應用加上一個mysql數據庫
在tomcat里運行一個簡單的webappp,這個app會訪問Mysql獲取數據。並展示在頁面上。為了演示和簡化的目的,只要程序正確連接到了數據庫上,它就會自動完成對應的table的創建與初始化數據的准備工作。所以當我們通過瀏覽器訪問此應用的時候,就會顯示一個表格的頁面,數據則來自數據庫。
配置
我們在/root/k8s-yaml/目錄下創建一個webapp的目錄,在這個目錄里面創建四個文件:
.
├── mysql-dm.yaml
├── mysql-svc.yaml
├── myweb-dm.yaml
└── myweb-svc.yaml
這四個文件的內容分別如下:
mysql-dm.yaml:
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:
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:
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30001
selector:
app: myweb
我們通過如下方式啟動:
kubectl apply -f ./
訪問:
http://$node_ip:30001/demo