├── Ingress-Tutorial ├── department-service-deploy.yml ├── ingress-scv.yml ├── ingress-svc-domain.yml └── user-service-deploy.yml ├── Kubernetes Volumes ├── pod.yml ├── pv.yml ├── pvc.yml └── storage-class.yml └── README.md /Ingress-Tutorial/department-service-deploy.yml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: department-service-app 5 | labels: 6 | app: department-service-app 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | app: department-service-app 12 | template: 13 | metadata: 14 | labels: 15 | app: department-service-app 16 | spec: 17 | containers: 18 | - name: department-service-app 19 | image: dailycodebuffer/department-service:0.0.1 20 | imagePullPolicy: Always 21 | ports: 22 | - containerPort: 9001 23 | 24 | --- 25 | apiVersion: v1 26 | kind: Service 27 | metadata: 28 | name: department-service-svc 29 | spec: 30 | ports: 31 | - targetPort: 9001 32 | port: 80 33 | selector: 34 | app: department-service-app 35 | -------------------------------------------------------------------------------- /Ingress-Tutorial/ingress-scv.yml: -------------------------------------------------------------------------------- 1 | # https://kubernetes.io/docs/concepts/services-networking/ingress/ 2 | apiVersion: networking.k8s.io/v1 3 | kind: Ingress 4 | metadata: 5 | name: my-ingress 6 | spec: 7 | rules: 8 | - host: dcbapp.com 9 | http: 10 | paths: 11 | - path: /users 12 | pathType: Prefix 13 | backend: 14 | service: 15 | name: user-service-svc 16 | port: 17 | number: 80 18 | - path: /departments 19 | pathType: Prefix 20 | backend: 21 | service: 22 | name: department-service-svc 23 | port: 24 | number: 80 25 | -------------------------------------------------------------------------------- /Ingress-Tutorial/ingress-svc-domain.yml: -------------------------------------------------------------------------------- 1 | # https://kubernetes.io/docs/concepts/services-networking/ingress/ 2 | apiVersion: networking.k8s.io/v1 3 | kind: Ingress 4 | metadata: 5 | name: my-ingress 6 | spec: 7 | rules: 8 | - host: user.dcbapp.com 9 | http: 10 | paths: 11 | - path: / 12 | pathType: Prefix 13 | backend: 14 | service: 15 | name: user-service-svc 16 | port: 17 | number: 80 18 | - host: department.dcbapp.com 19 | http: 20 | paths: 21 | - path: / 22 | pathType: Prefix 23 | backend: 24 | service: 25 | name: department-service-svc 26 | port: 27 | number: 80 28 | -------------------------------------------------------------------------------- /Ingress-Tutorial/user-service-deploy.yml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: user-service-app 5 | labels: 6 | app: user-service-app 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | app: user-service-app 12 | template: 13 | metadata: 14 | labels: 15 | app: user-service-app 16 | spec: 17 | containers: 18 | - name: user-service-app 19 | image: dailycodebuffer/user-service:0.0.1 20 | imagePullPolicy: Always 21 | ports: 22 | - containerPort: 9002 23 | 24 | --- 25 | apiVersion: v1 26 | kind: Service 27 | metadata: 28 | name: user-service-svc 29 | spec: 30 | ports: 31 | - targetPort: 9002 32 | port: 80 33 | selector: 34 | app: user-service-app 35 | -------------------------------------------------------------------------------- /Kubernetes Volumes/pod.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: task-pv-pod 5 | spec: 6 | volumes: 7 | - name: task-pv-storage 8 | persistentVolumeClaim: 9 | claimName: task-pv-claim 10 | containers: 11 | - name: task-pv-container 12 | image: nginx 13 | ports: 14 | - containerPort: 80 15 | name: "http-server" 16 | volumeMounts: 17 | - mountPath: "/usr/share/nginx/html" 18 | name: task-pv-storage 19 | 20 | 21 | -------------------------------------------------------------------------------- /Kubernetes Volumes/pv.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: task-pv-volume 5 | labels: 6 | type: local 7 | spec: 8 | storageClassName: manual 9 | capacity: 10 | storage: 10Gi 11 | accessModes: 12 | - ReadWriteOnce 13 | hostPath: 14 | path: "/mnt/data" 15 | -------------------------------------------------------------------------------- /Kubernetes Volumes/pvc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: task-pv-claim 5 | spec: 6 | storageClassName: manual 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 3Gi 12 | -------------------------------------------------------------------------------- /Kubernetes Volumes/storage-class.yml: -------------------------------------------------------------------------------- 1 | apiVersion: storage.k8s.io/v1 2 | kind: StorageClass 3 | metadata: 4 | name: standard 5 | provisioner: kubernetes.io/aws-ebs 6 | parameters: 7 | type: gp2 8 | reclaimPolicy: Retain 9 | allowVolumeExpansion: true 10 | mountOptions: 11 | - debug 12 | volumeBindingMode: Immediate 13 | 14 | --- 15 | 16 | apiVersion: storage.k8s.io/v1 17 | kind: StorageClass 18 | metadata: 19 | name: standard 20 | provisioner: kubernetes.io/gce-pd 21 | parameters: 22 | type: pd-standard 23 | volumeBindingMode: WaitForFirstConsumer 24 | allowedTopologies: 25 | - matchLabelExpressions: 26 | - key: failure-domain.beta.kubernetes.io/zone 27 | values: 28 | - us-central1-a 29 | - us-central1-b -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Kubernetes-Tutorial 2 | Kubernetes-Tutorial 3 | --------------------------------------------------------------------------------