咱们经过一个示例来演示一下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 ./
访问: