Overview
This particular example is interesting cause we are going to use 2 containers within one POD with only one replica. This example will represent state full application which is not a good concept at all however, it is very good for learning purposes.
Service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# ********************************* # Set up a service # ********************************* cat wordpress/wordpress-service.yml ... apiVersion: v1 kind: Service metadata: name: wordpress-service spec: ports: - port: 31001 nodePort: 31001 targetPort: http-port protocol: TCP selector: app: wordpress type: NodePort ... :wq! |
Secret
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# ********************************* # Set up some credentials # ********************************* cat wordpress/wordpress-secrets.yml ... apiVersion: v1 kind: Secret metadata: name: wordpress-secrets type: Opaque data: db-password: cGFzc3dvcmQ= ... :wq! |
Deployment
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# **************************************************** # Deployment of wordpress and MySQL database # **************************************************** cat wordpress/wordpress-single-deployment-no-volumes.yml ... apiVersion: extensions/v1beta1 kind: Deployment metadata: name: wordpress-deployment spec: replicas: 1 template: metadata: labels: app: wordpress spec: containers: - name: wordpress image: wordpress:4-php7.0 ports: - name: http-port containerPort: 80 env: - name: WORDPRESS_DB_PASSWORD valueFrom: secretKeyRef: name: wordpress-secrets key: db-password - name: WORDPRESS_DB_HOST value: 127.0.0.1 - name: mysql image: mysql:5.7 ports: - name: mysql-port containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: wordpress-secrets key: db-password ... :wq! |