wikiv3:teampass_deploy
TeamPass
$ kubectl create ns teampass-system
namespace/teampass-system created
Database
- 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
App
- 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
wikiv3/teampass_deploy.txt · Last modified: by 127.0.0.1
