Java Web App需要两个容器:WebApp容器和MySQL容器,并且WebApp容器需要访问MySQL容器。

如果仅使用Docker,我们需要将MySQL容器的IP地址通过环境变量的方式注入WebApp容器,同时将WebApp容器的8080端口映射到宿主机的8080端口,以便在外部访问。

MySQL服务

创建RC

创建MySQL的RC文件mysql-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"

创建RC

kubectl create -f mysql-rc.yaml

查看RC

kubectl get rc

查看Pod

kubectl get pods

创建服务

创建MySQL服务的定义文件mysql-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
  - port: 3306
  selector:
    app: mysql

创建Service对象

kubectl create -f mysql-svc.yaml

查看Service

kubectl get svc

Tomcat应用

创建RC

创建Tomcat对应的myweb-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: myweb
spec:
  replicas: 5
  selector:
    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'

创建RC对象

kubectl create -f myweb-rc.yaml

创建Service

定义myweb-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: myweb
spec:
  type: NodePort
  ports:
  - port: 8080
    nodePort: 30001
  selector:
    app: myweb

创建Service对象

kubectl create -f myweb-svc.yaml

访问服务地址http://192.168.73.139:30001/demo

results matching ""

    No results matching ""