====== PHPipam ====== $ ssh kube-worker-01 $ sudo mkdir /volumes/kubernetes/phpipam $ sudo chmod 777 /volumes/kubernetes/phpipam $ kubectl create namespace phpipam namespace/phpipam created --- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: local-storage-phpipam namespace: phpipam provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer $ kubectl apply -f storage-class-phpipam.yaml storageclass.storage.k8s.io/local-storage-phpipam created --- apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv-phpipam namespace: phpipam spec: capacity: storage: 4Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: local-storage-phpipam local: path: /volumes/kubernetes/phpipam nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - kube-worker-01.juntotelecom.com.br --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: claim-db-phpipam namespace: phpipam spec: accessModes: - ReadWriteOnce storageClassName: local-storage-phpipam resources: requests: storage: 4Gi $ kubectl apply -f persistentvolumes.yaml persistentvolume/mysql-pv-phpipam created persistentvolumeclaim/claim-db-phpipam created $ echo -n "@btjt(())22" | openssl enc -base64 QGJ0anQoKCkpMjI= --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: mysql name: mysql namespace: phpipam spec: replicas: 1 selector: matchLabels: app: mysql strategy: {} template: metadata: labels: app: mysql spec: containers: - env: - name: MYSQL_ROOT_PASSWORD value: QGJ0anQoKCkpMjI= image: mysql:5.6 imagePullPolicy: IfNotPresent name: mysql volumeMounts: - mountPath: /var/lib/mysql name: db-phpipam volumes: - name: db-phpipam persistentVolumeClaim: claimName: claim-db-phpipam $ kubectl apply -f mysql-deployment.yaml deployment.apps/mysql created --- apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: ipam name: ipam namespace: phpipam spec: replicas: 1 selector: matchLabels: app: ipam strategy: {} template: metadata: labels: app: ipam spec: containers: - env: - name: MYSQL_ENV_MYSQL_HOST value: mysql - name: MYSQL_ENV_MYSQL_ROOT_PASSWORD value: QGJ0anQoKCkpMjI= - name: MYSQL_ENV_MYSQL_USER value: root image: pierrecdn/phpipam name: ipam ports: - containerPort: 80 $ kubectl apply -f ipam-deployment.yaml deployment.apps/ipam created $ kubectl expose deploy ipam --port=80 --target-port=80 --type=NodePort -n phpipam --dry-run=client -o yaml > ipam-service.yaml apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: app: ipam name: ipam namespace: phpipam spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: ipam type: NodePort status: loadBalancer: {} $ kubectl apply -f ipam-service.yaml service/ipam created $ kubectl get all -n phpipam NAME READY STATUS RESTARTS AGE pod/ipam-5c747776ff-wzs6w 1/1 Running 0 11m pod/mysql-7d9788589b-tlkk8 1/1 Running 0 21m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/ipam NodePort 10.97.49.198 80:31899/TCP 2m34s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/ipam 1/1 1 1 11m deployment.apps/mysql 1/1 1 1 21m NAME DESIRED CURRENT READY AGE replicaset.apps/ipam-5c747776ff 1 1 1 11m replicaset.apps/mysql-7d9788589b 1 1 1 21m $ kubectl expose deploy mysql --port=3306 --target-port=3306 -n phpipam $ kubectl get all -n phpipam -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/ipam-5c747776ff-cgnvg 1/1 Running 0 20m 192.168.213.134 kube-worker-02.juntotelecom.com.br pod/mysql-7d9788589b-tlkk8 1/1 Running 0 54m 192.168.101.68 kube-worker-01.juntotelecom.com.br NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR service/ipam NodePort 10.97.49.198 80:31899/TCP 35m app=ipam service/mysql ClusterIP 10.110.145.45 3306/TCP 25m app=mysql NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR deployment.apps/ipam 1/1 1 1 43m ipam pierrecdn/phpipam app=ipam deployment.apps/mysql 1/1 1 1 54m mysql mysql:5.6 app=mysql NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR replicaset.apps/ipam-5c747776ff 1 1 1 43m ipam pierrecdn/phpipam app=ipam,pod-template-hash=5c747776ff replicaset.apps/mysql-7d9788589b 1 1 1 54m mysql mysql:5.6 app=mysql,pod-template-hash=7d9788589b