ABOUT ME

Today
Yesterday
Total
  • kubernetes
    kubernetes 2023. 10. 24. 10:20

     

    이름: 리소스의 이름.
    단축이름: 리소스의 짧은 별칭 (사용 가능한 경우).
    API그룹: 리소스가 속한 API 그룹.
    네임스페이스: 리소스가 네임스페이스에 속하는지 여부를 나타냅니다 (true는 네임스페이스 범위이고, false는 클러스터 범위입니다).
    종류: 리소스의 종류.

     

     

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: wordpress-mysql
      labels:
        app: wordpress
    spec:
      selector:
        matchLabels:
          app: wordpress
          tier: mysql
      template:
        metadata:
          labels:
            app: wordpress
            tier: mysql
        spec:
          containers:
            - image: mariadb:10.7
              name: mysql
              env:
                - name: MYSQL_DATABASE
                  value: wordpress
                - name: MYSQL_ROOT_PASSWORD
                  value: password
              ports:
                - containerPort: 3306
                  name: mysql

    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: wordpress-mysql
      labels:
        app: wordpress
    spec:
      ports:
        - port: 3306
      selector:
        app: wordpress
        tier: mysql

    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: wordpress
      labels:
        app: wordpress
    spec:
      selector:
        matchLabels:
          app: wordpress
          tier: frontend
      template:
        metadata:
          labels:
            app: wordpress
            tier: frontend
        spec:
          containers:
            - image: wordpress:5.9.1-php8.1-apache
              name: wordpress
              env:
                - name: WORDPRESS_DB_HOST
                  value: wordpress-mysql
                - name: WORDPRESS_DB_NAME
                  value: wordpress
                - name: WORDPRESS_DB_USER
                  value: root
                - name: WORDPRESS_DB_PASSWORD
                  value: password
              ports:
                - containerPort: 80
                  name: wordpress

    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: wordpress
      labels:
        app: wordpress
    spec:
      type: NodePort
      ports:
        - port: 80
      selector:
        app: wordpress
        tier: frontend
     

     

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: vote
    spec:
      selector:
        matchLabels:
          service: vote
      template:
        metadata:
          labels:
            service: vote
        spec:
          containers:
            - name: vote
              image: ghcr.io/subicura/voting/vote
              env:
                - name: REDIS_HOST
                  value: "redis"          reids 내용이 6379로 저장
                - name: REDIS_PORT
                  value: "6379"
              livenessProbe:
                httpGet:
                  path: /
                  port: 80
              readinessProbe:
                httpGet:
                  path: /
                  port: 80
              ports:
                - containerPort: 80
                  protocol: TCP

    --- 외부 
    apiVersion: v1
    kind: Service
    metadata:
      name: vote
    spec:
      type: NodePort
      ports:
        - port: 80
          nodePort: 31000
          protocol: TCP
      selector:
        service: vote

    --- 내용결과
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: result
    spec:
      selector:
        matchLabels:
          service: result
      template:
        metadata:
          labels:
            service: result
        spec:
          containers:
            - name: result
              image: ghcr.io/subicura/voting/result
              env:
                - name: POSTGRES_HOST
                  value: "db"
                - name: POSTGRES_PORT
                  value: "5432"
              livenessProbe:
                httpGet:
                  path: /
                  port: 80
              readinessProbe:
                httpGet:
                  path: /
                  port: 80
              ports:
                - containerPort: 80
                  protocol: TCP

    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: result
    spec:
      type: NodePort
      ports:
        - port: 80
          nodePort: 31001
          protocol: TCP
      selector:
        service: result

    --- db 연결
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: worker
    spec:
      selector:
        matchLabels:
          service: worker
      template:
        metadata:
          labels:
            service: worker
        spec:
          containers:
            - name: worker
              image: ghcr.io/subicura/voting/worker
              env:
                - name: REDIS_HOST
                  value: "redis"
                - name: REDIS_PORT
                  value: "6379"
                - name: POSTGRES_HOST
                  value: "db"
                - name: POSTGRES_PORT
                  value: "5432"

    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: redis
    spec:
      selector:
        matchLabels:
          service: redis
      template:
        metadata:
          labels:
            service: redis
        spec:
          containers:
            - name: redis
              image: redis
              ports:
                - containerPort: 6379
                  protocol: TCP

    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: redis
    spec:
      ports:
        - port: 6379
          protocol: TCP
      selector:
        service: redis

    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: db
    spec:
      selector:
        matchLabels:
          service: db
      template:
        metadata:
          labels:
            service: db
        spec:
          containers:
            - name: db
              image: postgres:9.4
              env:
                - name: POSTGRES_USER
                  value: "postgres"
                - name: POSTGRES_PASSWORD
                  value: "postgres"
              ports:
                - containerPort: 5432
                  protocol: TCP

    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: db
    spec:
      ports:
        - port: 5432
          protocol: TCP
      selector:
        service: db


    투표 화면 
    vote 화면에서 선택 내용이 redis 에 저장이 된다 


    결과 화면
    redis의 내용이 db로 전달하여 result가 내보낸다
       

     

    'kubernetes' 카테고리의 다른 글

    클러스터 tomcat 배포  (0) 2023.10.27
    아파치, 워드프레스, mysql  (0) 2023.10.26
    클러스터 생성  (0) 2023.10.25
    Kubernetes (ingress)  (0) 2023.10.24
    kubernetes  (0) 2023.10.23
Designed by Tistory.