-
사용하는 image를 다운받고 저장합니다.
- 작업 디렉토리 생성 및 환경 설정
mkdir -p ~/catalog-controller-install export CATALOG_HOME=~/catalog-controller-install export CATALOG_VERSION=0.3.0 cd $CATALOG_HOME
- 외부 네트워크 통신이 가능한 환경에서 필요한 이미지를 다운받습니다.
# TEMPLATE SERVICE BROKER 이미지 Pull docker pull quay.io/kubernetes-service-catalog/service-catalog:v${CATALOG_VERSION} # 이미지 Save docker save quay.io/kubernetes-service-catalog/service-catalog:v${CATALOG_VERSION} > service-catalog_v${CATALOG_VERSION}.tar
-
폐쇄망으로 이미지 파일(.tar)을 옮깁니다.
-
폐쇄망에서 사용하는 image repository에 이미지를 push 합니다.
# 이미지 레지스트리 주소 REGISTRY=[IP:PORT] # 이미지 Load docker load < service-catalog_v${CATALOG_VERSION}.tar # 이미지 Tag docker tag quay.io/kubernetes-service-catalog/service-catalog:v${CATALOG_VERSION} ${REGISTRY}/quay.io/kubernetes-service-catalog/service-catalog:v${CATALOG_VERSION} # 이미지 Push docker push ${REGISTRY}/quay.io/kubernetes-service-catalog/service-catalog:v${CATALOG_VERSION}
- 설치에 필요한 crd 생성
- catalog controller namespace 및 servcice account 생성
- catalog manager 생성
- webhook 인증 키 생성
- catalog-webhook 생성
- 목적 :
CatalogController crd 생성 - 생성 순서 : 아래 command로 yaml 적용
- kubectl apply -f crds/ (폴더)
- 목적 :
catalog controller namespace 및 servcice account 생성 - 생성 순서 : 아래 command로 yaml 적용
- 목적 :
catalog manager 생성 - 생성 순서 : 아래 command로 yaml 적용
- 목적 :
webhook 인증에 필요한 키를 생성 - 생성 순서 : 아래 command 적용
- openssl genrsa -out rootca.key 2048
- openssl req -x509 -new -nodes -key rootca.key -sha256 -days 3650 -subj /C=KO/ST=None/L=None/O=None/CN=catalog-catalog-webhook -out rootca.crt
- 비고: .rnd 파일이 없어서 해당 명령어 실행이 안되는 경우, /etc/ssl/openssl.cnf 파일의 "RANDFILE = $ENV::HOME/.rnd" 부분을 주석처리 합니다.
- v3.ext 파일 생성 (파일)
- openssl req -new -newkey rsa:2048 -sha256 -nodes -keyout server.key -subj /C=KO/ST=None/L=None/O=None/CN=catalog-catalog-webhook -out server.csr
- openssl x509 -req -in server.csr -CA rootca.crt -CAkey rootca.key -CAcreateserial -out server.crt -days 3650 -sha256 -extfile ./v3.ext
- openssl base64 -in rootca.crt -out key0
- openssl base64 -in server.crt -out cert
- openssl base64 -in server.key -out key
- 목적 :
catalog-webhook 생성 - 생성 순서 : 아래 command 적용
- kubectl apply -f webhook-register.yaml (파일)
- 비고: 해당 파일의 변수를 7번에서 생성한 키로 대체 합니다. (단, 생성된 키 공백은 모두 지우셔야 합니다.)
- {{ b64enc $ca.Cert }} --> key0 내부 값으로 대체
- {{ b64enc $cert.Cert }} --> cert 내부 값으로 대체
- {{ b64enc $cert.Key }} --> key 내부 값으로 대체
- 비고: 해당 파일의 변수를 7번에서 생성한 키로 대체 합니다. (단, 생성된 키 공백은 모두 지우셔야 합니다.)
- kubectl apply -f webhook-deployment.yaml (파일)
- 비고: 각 파일에 image 항목이 있는 경우, registry주소의 이미지를 사용해야 합니다. (${REGISTRY}/quay.io/kubernetes-service-catalog/service-catalog:v${CATALOG_VERSION})
- kubectl apply -f webhook-service.yaml (파일)
- kubectl apply -f webhook-register.yaml (파일)
- 목적 :
사용중인 리소스 차례로 제거 - 삭제 순서 : 아래 command 순서대로 적용
- kubectl delete servicebinding --all --all-namespaces
- kubectl delete serviceinstance --all --all-namespaces
- kubectl delete servicebinding --all --all-namespaces
- kubectl delete clusterservicebroker --all --all-namespaces
- kubectl delete servicebroker --all --all-namespaces
- 목적 :
설치에 필요한 pod, service 등의 리소스 제거 - 삭제 순서 : 설치에 진행했던 yaml 파일 역순으로 적용
- kubectl delete -f webhook-service.yaml (파일)
- kubectl delete -f webhook-deployment.yaml (파일)
- kubectl delete -f webhook-register.yaml (파일)
- kubectl delete -f controller-manager-service.yaml (파일)
- kubectl delete -f controller-manager-deployment.yaml (파일)
- kubectl delete -f rbac.yaml (파일)
- kubectl delete -f serviceaccounts.yaml (파일)
- kubectl delete namespace catalog
- 목적 :
CRD 제거 - 삭제 순서 : 아래 command로 yaml 적용
- kubectl delete -f crds/ (폴더)