Awx-operator: https ํ™œ์„ฑํ™”

์— ๋งŒ๋“  2020๋…„ 07์›” 13์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ansible/awx-operator

https๋Š” awx-operator๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๊นŒ?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

k8s์˜ ์ธ๊ทธ๋ ˆ์Šค์— TLS๋ฅผ ์„ค์ •ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์— ๋‚จ๊ฒจ ๋‘ก๋‹ˆ๋‹ค.

  1. ๋จผ์ € awx ๋ฆฌ์†Œ์Šค์—์„œ ์ˆ˜์‹  ์œ ํ˜•์ด ์—†์Œ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx
  namespace: ansible-awx
spec:
  deployment_type: awx
  tower_admin_user: test
  tower_admin_email: [email protected]
  tower_admin_password: changeme
  tower_broadcast_websocket_secret: changeme
  tower_ingress_type: none
  1. (์„ ํƒ ์‚ฌํ•ญ) tls ์ธ์ฆ์„œ ์•”ํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์žˆ๋Š” ๊ฒฝ์šฐ ExternalName ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ„ ์š”์ฒญ์„ ํ”„๋ก์‹œํ•ฉ๋‹ˆ๋‹ค(์™ธ๋ถ€ ์ด๋ฆ„์€ awx ์„œ๋น„์Šค์˜ FQDN์ž„).
kind: Service
apiVersion: v1
metadata:
  name: awx-service-proxy
spec:
  type: ExternalName
  externalName: awx-service.ansible-awx.svc.cluster.local
  ports:
  - port: 80
  1. ํ”„๋ก์‹œ ์„œ๋น„์Šค(๋˜๋Š” awx ์„œ๋น„์Šค)๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ˆ˜์‹  ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: awx-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  tls:
  - hosts:
      - awx.mydomain.com
    secretName: ingress-tls
  rules:
    - host: awx.mydomain.com
      http:
        paths:
          - backend:
              serviceName: awx-service-proxy
              servicePort: 80
            path: /
            pathType: ImplementationSpecific

๋ชจ๋“  4 ๋Œ“๊ธ€

OCP์— ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฒฝ๋กœ๋Š” https ๋ฐ ssl ์ข…๋ฃŒ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ธ๊ทธ๋ ˆ์Šค ์ปจํŠธ๋กค๋Ÿฌ ์ธก์—์„œ๋Š” ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฅผ ํŒŒ์•…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

k8s์˜ ์ธ๊ทธ๋ ˆ์Šค์— TLS๋ฅผ ์„ค์ •ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์— ๋‚จ๊ฒจ ๋‘ก๋‹ˆ๋‹ค.

  1. ๋จผ์ € awx ๋ฆฌ์†Œ์Šค์—์„œ ์ˆ˜์‹  ์œ ํ˜•์ด ์—†์Œ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx
  namespace: ansible-awx
spec:
  deployment_type: awx
  tower_admin_user: test
  tower_admin_email: [email protected]
  tower_admin_password: changeme
  tower_broadcast_websocket_secret: changeme
  tower_ingress_type: none
  1. (์„ ํƒ ์‚ฌํ•ญ) tls ์ธ์ฆ์„œ ์•”ํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์žˆ๋Š” ๊ฒฝ์šฐ ExternalName ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ„ ์š”์ฒญ์„ ํ”„๋ก์‹œํ•ฉ๋‹ˆ๋‹ค(์™ธ๋ถ€ ์ด๋ฆ„์€ awx ์„œ๋น„์Šค์˜ FQDN์ž„).
kind: Service
apiVersion: v1
metadata:
  name: awx-service-proxy
spec:
  type: ExternalName
  externalName: awx-service.ansible-awx.svc.cluster.local
  ports:
  - port: 80
  1. ํ”„๋ก์‹œ ์„œ๋น„์Šค(๋˜๋Š” awx ์„œ๋น„์Šค)๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ˆ˜์‹  ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: awx-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  tls:
  - hosts:
      - awx.mydomain.com
    secretName: ingress-tls
  rules:
    - host: awx.mydomain.com
      http:
        paths:
          - backend:
              serviceName: awx-service-proxy
              servicePort: 80
            path: /
            pathType: ImplementationSpecific

k8s์˜ ์ธ๊ทธ๋ ˆ์Šค์— TLS๋ฅผ ์„ค์ •ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์— ๋‚จ๊ฒจ ๋‘ก๋‹ˆ๋‹ค.

  1. ๋จผ์ € awx ๋ฆฌ์†Œ์Šค์—์„œ ์ˆ˜์‹  ์œ ํ˜•์ด ์—†์Œ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx
  namespace: ansible-awx
spec:
  deployment_type: awx
  tower_admin_user: test
  tower_admin_email: [email protected]
  tower_admin_password: changeme
  tower_broadcast_websocket_secret: changeme
  tower_ingress_type: none
  1. (์„ ํƒ ์‚ฌํ•ญ) tls ์ธ์ฆ์„œ ์•”ํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์žˆ๋Š” ๊ฒฝ์šฐ ExternalName ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ„ ์š”์ฒญ์„ ํ”„๋ก์‹œํ•ฉ๋‹ˆ๋‹ค(์™ธ๋ถ€ ์ด๋ฆ„์€ awx ์„œ๋น„์Šค์˜ FQDN์ž„).
kind: Service
apiVersion: v1
metadata:
  name: awx-service-proxy
spec:
  type: ExternalName
  externalName: awx-service.ansible-awx.svc.cluster.local
  ports:
  - port: 80
  1. ํ”„๋ก์‹œ ์„œ๋น„์Šค(๋˜๋Š” awx ์„œ๋น„์Šค)๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ˆ˜์‹  ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: awx-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  tls:
  - hosts:
      - awx.mydomain.com
    secretName: ingress-tls
  rules:
    - host: awx.mydomain.com
      http:
        paths:
          - backend:
              serviceName: awx-service-proxy
              servicePort: 80
            path: /
            pathType: ImplementationSpecific

์ •๋ง ๊ณ ๋งˆ์›Œ. ์ธ์ฆ์„œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰