- teampass-db-claim.yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-db-teampass
namespace: teampass-system
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs-client
resources:
requests:
storage: 4Gi
$ kubectl apply -f teampass-db-claim.yaml
persistentvolumeclaim/teampass-db created
$ echo -n "@btjt(())22" | base64
QGJ0anQoKCkpMjI=
- db-secrets.yaml
---
apiVersion: v1
kind: Secret
metadata:
name: db-secrets
namespace: teampass-system
data:
MYSQL_PASSWORD: QGJ0anQoKCkpMjI=
MYSQL_ROOT_PASSWORD: QGJ0anQoKCkpMjI=
$ kubectl apply -f db-secrets.yaml
secret/db-secrets created
- db-deployment.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: db-teampass
name: db-teampass
namespace: teampass-system
spec:
replicas: 1
selector:
matchLabels:
app: db-teampass
strategy: {}
template:
metadata:
labels:
app: db-teampass
spec:
securityContext:
fsGroup: 1001
runAsUser: 1001
containers:
- env:
- name: MYSQL_DATABASE
value: teampass
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: db-secrets
key: MYSQL_PASSWORD
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: db-secrets
key: MYSQL_ROOT_PASSWORD
- name: MYSQL_USER
value: teampass
image: mariadb:latest
imagePullPolicy: IfNotPresent
name: db-teampass
resources: {}
volumeMounts:
- mountPath: /var/lib/mysql
name: db-teampass
volumes:
- name: db-teampass
persistentVolumeClaim:
claimName: nfs-db-teampass
$ kubectl apply -f db-deployment.yaml
deployment.apps/db-teampass created
- db-service.yaml
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
app: db-teampass
name: db-teampass
namespace: teampass-system
spec:
ports:
- name: "3306"
port: 3306
targetPort: 3306
selector:
app: db-teampass
status:
loadBalancer: {}
$ kubectl apply -f db-service.yaml
service/db-teampass created
- teampass-html-claim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-teampass-html
namespace: teampass-system
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs-client
resources:
requests:
storage: 1Gi
$ kubectl apply -f teampass-html-claim.yaml
persistentvolumeclaim/nfs-teampass-html created
- teampass-deployment.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: teampass
name: teampass
namespace: teampass-system
spec:
replicas: 1
selector:
matchLabels:
app: teampass
strategy: {}
template:
metadata:
labels:
app: teampass
spec:
containers:
- image: teampass/teampass
name: teampass
ports:
- containerPort: 80
volumeMounts:
- mountPath: /var/www/html
name: teampass-html
volumes:
- name: teampass-html
persistentVolumeClaim:
claimName: nfs-teampass-html
$ kubectl apply -f teampass-deployment.yaml
deployment.apps/teampass created
$ kubectl expose deploy teampass --port=80 --target-port=80 --type="NodePort" -n teampass-system
service/teampass exposed
$ kubectl get all -n teampass-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/db-teampass-6bf4596bc-tc6cs 1/1 Running 0 26m 10.244.213.140 kube-worker-02.juntotelecom.com.br <none> <none>
pod/teampass-78d4fcd499-rd2qt 1/1 Running 0 6m40s 10.244.213.141 kube-worker-02.juntotelecom.com.br <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/db-teampass ClusterIP 10.96.140.199 <none> 3306/TCP 21m app=db-teampass
service/teampass NodePort 10.96.77.101 <none> 80:31932/TCP 4s app=teampass
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/db-teampass 1/1 1 1 26m db-teampass mariadb:latest app=db-teampass
deployment.apps/teampass 1/1 1 1 6m40s teampass teampass/teampass app=teampass
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/db-teampass-6bf4596bc 1 1 1 26m db-teampass mariadb:latest app=db-teampass,pod-template-hash=6bf4596bc
replicaset.apps/teampass-78d4fcd499 1 1 1 6m40s teampass teampass/teampass app=teampass,pod-template-hash=78d4fcd499