赞
踩
本实验要创建两个POD,两个服务。下面开始准备发布文件。
mysql-pod.yml内容如下:
apiVersion: v1 kind: Pod metadata: name: mysql labels: app: mysql spec: containers: - name: mysql #mysql官方5.7镜像 image: mysql:5.7 env: #支持启动的时候配置数据库 - name: MYSQL_ROOT_PASSWORD #root用户密码,实际生产环境要配置在ConfigMap/Secret中。 value: petclinic - name: MYSQL_DATABASE #创建数据库 value: petclinic
mysql-service.yml文件内容如下:
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
selector:
app: mysql
ports:
- name: tcp
port: 3306
targetPort: 3306
type: ClusterIP
petclinic-deployment.yml文件内容如下:
apiVersion: apps/v1 kind: Deployment metadata: name: petclinic spec: replicas: 1 selector: matchLabels: app: petclinic template: metadata: labels: app: petclinic spec: containers: - name: petclinic # Run this image image: spring2go/spring-petclinic:1.0.0.RELEASE env: - name: SPRING_PROFILES_ACTIVE value: mysql - name: DATASOURCE_URL # 直接使用服务名mysql,即://后面的mysql,后面为数据库名。 value: jdbc:mysql://mysql/petclinic - name: DATASOURCE_USERNAME value: root - name: DATASOURCE_PASSWORD value: petclinic - name: DATASOURCE_INIT_MODE value: always
petclinic-service.yml内容如下:
apiVersion: v1 kind: Service metadata: # Unique key of the Service instance name: petclinic spec: ports: # Accept traffic sent to port 80 - name: http # port为集群内部服务前通信的端口 port: 8080 targetPort: 8080 nodePort: 31080 selector: # 下面标签app: petclinic表示本服务会路由指向所有app标签为petclinic的pod。 app: petclinic type: NodePort
由于petclinic应用依赖mysql,所以应该先启动mysql。
kubectl get all
#如果本地没有mysql镜像,还需要下载镜像,时间会长点
kubectl apply -f mysql-pod.yml
kubectl apply -f mysql-service.yml
kubectl get all
kubectl apply -f petclinic-deployment.yml
kubectl apply -f petclinic-service.yml
kubectl get all
校验petclinic应用是否正常启动。
kubectl get all
#复制petclinic Pod Name
kubectl logs pod_name
#查看日志
浏览器校验 http://localhost:31080
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。