说明
我们通过一个示例来演示一下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/v1beta1kind: Deploymentmetadata: ?name: mysqlspec: ?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: v1kind: Servicemetadata: ?name: mysqlspec: ?ports: ?- port: 3306 ?selector: ???app: mysql``
myweb-dm.yaml:
apiVersion: apps/v1beta1kind: Deploymentmetadata: ?name: mywebspec: ?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: v1kind: Servicemetadata: ?name: mywebspec: ?type: NodePort ?ports: ?- port: 8080 ???nodePort: 30001 ?selector: ???app: myweb
我们通过如下方式启动:
kubectl apply -f ./
访问:
http://$node_ip:30001/demo
一个简单的Kubernetes应用部署示例
原文地址:https://www.cnblogs.com/breezey/p/9457734.html