Vamos a desplegar un contenedor mysql 5.7 con un front phpmyadmin
vi mysql.yaml
apiVersion: v1 kind: Namespace metadata: name: phpmyadmin-mysql --- apiVersion: v1 kind: Secret metadata: name: mysql-secret namespace: phpmyadmin-mysql type: Opaque data: ROOT_PASSWORD: cGFzc3dvcmQ= --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-data-disk namespace: phpmyadmin-mysql spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: mysql-deployment namespace: phpmyadmin-mysql labels: app: phpmyadmin-mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 ports: - containerPort: 3306 volumeMounts: - mountPath: "/var/lib/mysql" subPath: "mysql" name: mysql-data env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: ROOT_PASSWORD volumes: - name: mysql-data persistentVolumeClaim: claimName: mysql-data-disk --- apiVersion: v1 kind: Service metadata: name: mysql-service namespace: phpmyadmin-mysql spec: selector: app: mysql ports: - protocol: TCP port: 3306 targetPort: 3306 --- apiVersion: v1 kind: Secret metadata: name: phpmyadmin-secret namespace: phpmyadmin-mysql type: Opaque data: root-password: cGFzc3dvcmQ= --- apiVersion: apps/v1 kind: Deployment metadata: name: phpmyadmin-deployment namespace: phpmyadmin-mysql labels: app: phpmyadmin-mysql spec: replicas: 1 selector: matchLabels: app: phpmyadmin-mysql template: metadata: labels: app: phpmyadmin-mysql spec: containers: - name: phpmyadmin-mysql image: phpmyadmin/phpmyadmin ports: - containerPort: 80 env: - name: PMA_HOST value: mysql-service - name: PMA_PORT value: "3306" - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: phpmyadmin-secret key: root-password --- apiVersion: v1 kind: Service metadata: name: phpmyadmin-service namespace: phpmyadmin-mysql spec: selector: app: phpmyadmin-mysql ports: - protocol: TCP port: 80 targetPort: 80
kubectl create -f mysql.yaml
Si hemos creado certificado bajo un dominio, en este ejemplo kluster.cf, creamos un secreto y luego se lo damos al ingress.
kubectl -n phpmyadmin-mysql create secret tls phpmyadmin-tls-secret --cert=kluster.cf.crt --key=kluster.cf.key
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: phpmyadmin-mysql namespace: phpmyadmin-mysql spec: tls: - hosts: - kluster.cf secretName: phpmyadmin-tls-secret rules: - host: kluster.cf http: paths: - path: / backend: serviceName: phpmyadmin-service servicePort: 80Y con esto ya tenemos el certificado https y nos aparece firmado por lets encrypt
0 comentarios