6장. 배포
6.1. 애플리케이션 사용자 정의 도메인
OpenShift Dedicated 4.14부터 Custom Domain Operator는 더 이상 사용되지 않습니다. OpenShift Dedicated 4.14에서 Ingress를 관리하려면 Ingress Operator를 사용합니다. OpenShift Dedicated 4.13 및 이전 버전에서는 기능이 변경되지 않습니다.
애플리케이션에 대한 사용자 지정 도메인을 구성할 수 있습니다. 사용자 지정 도메인은 OpenShift Dedicated 애플리케이션에서 사용할 수 있는 특정 와일드카드 도메인입니다.
6.1.1. 애플리케이션의 사용자 정의 도메인 구성
최상위 도메인(TLD)은 OpenShift Dedicated 클러스터를 운영하는 고객이 소유합니다. Custom Domains Operator는 사용자 정의 인증서를 두 번째 작업으로 사용하여 새 Ingress 컨트롤러를 설정합니다. 그런 다음 외부 DNS에서 이 Ingress 컨트롤러의 퍼블릭 DNS 레코드를 사용하여 사용자 정의 도메인에 사용할 와일드카드 CNAME 레코드를 생성할 수 있습니다.
Red Hat은 API 도메인을 제어하므로 사용자 정의 API 도메인은 지원되지 않습니다. 그러나 고객은 애플리케이션 도메인을 변경할 수 있습니다. 개인 IngressController
가 있는 프라이빗 사용자 정의 도메인의 경우 CustomDomain
CR에서 .spec.scope
를 Internal
로 설정합니다.
사전 요구 사항
-
dedicated-admin
권한이 있는 사용자 계정 -
고유한 도메인 또는 와일드카드 도메인(예:
*.apps.<company_name>.io
) -
CN=*.apps.<company_name>.io
와 같은 사용자 정의 인증서 또는 와일드카드 사용자 정의 인증서 -
최신 버전의
oc
CLI가 설치된 클러스터에 액세스
CustomDomain
CR의 metadata/name:
섹션에서 예약된 이름 default
또는
(예: apps 또는 apps
*apps2
)를 사용하지 마십시오.
프로세스
개인 키와 공개 인증서에서 새 TLS 시크릿을 만듭니다. 여기서
fullchain.pem
및privkey.pem
은 공개 또는 개인 와일드카드 인증서입니다.예제
$ oc create secret tls <name>-tls --cert=fullchain.pem --key=privkey.pem -n <my_project>
새
CustomDomain
CR(사용자 정의 리소스)을 생성합니다.예:
<company_name>-custom-domain.yaml
apiVersion: managed.openshift.io/v1alpha1 kind: CustomDomain metadata: name: <company_name> spec: domain: apps.<company_name>.io 1 scope: External loadBalancerType: Classic 2 certificate: name: <name>-tls 3 namespace: <my_project> routeSelector: 4 matchLabels: route: acme namespaceSelector: 5 matchLabels: type: sharded
CR을 적용합니다.
예제
$ oc apply -f <company_name>-custom-domain.yaml
새로 생성된 CR의 상태를 가져옵니다.
$ oc get customdomains
출력 예
NAME ENDPOINT DOMAIN STATUS <company_name> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com *.apps.<company_name>.io Ready
엔드포인트 값을 사용하여 Route53, Azure DNS 또는 Google DNS와 같은 관리형 DNS 공급자에 새 와일드카드 CNAME 레코드 세트를 추가합니다.
예제
*.apps.<company_name>.io -> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com
새 애플리케이션을 생성하고 노출합니다.
예제
$ oc new-app --docker-image=docker.io/openshift/hello-openshift -n my-project
$ oc create route <route_name> --service=hello-openshift hello-openshift-tls --hostname hello-openshift-tls-my-project.apps.<company_name>.io -n my-project
$ oc get route -n my-project
$ curl https://hello-openshift-tls-my-project.apps.<company_name>.io Hello OpenShift!
6.1.2. 사용자 정의 도메인의 인증서 업데이트
oc
CLI 툴을 사용하여 CDO(Custom Domains Operator)로 인증서를 갱신할 수 있습니다.
사전 요구 사항
-
최신 버전
oc
CLI 툴이 설치되어 있어야 합니다.
프로세스
새 시크릿 생성
$ oc create secret tls <secret-new> --cert=fullchain.pem --key=privkey.pem -n <my_project>
patch CustomDomain CR
$ oc patch customdomain <company_name> --type='merge' -p '{"spec":{"certificate":{"name":"<secret-new>"}}}'
이전 시크릿 삭제
$ oc delete secret <secret-old> -n <my_project>
문제 해결