Add Kserve configuration
This commit is contained in:
@@ -0,0 +1,59 @@
|
|||||||
|
# Kubeflow 배포
|
||||||
|
|
||||||
|
## 배포 절차
|
||||||
|
### 1) 변수 수정
|
||||||
|
- 대상 파일
|
||||||
|
```
|
||||||
|
- common/oauth2-proxy/overlays/m2m-keycloak/m2m.env
|
||||||
|
- common/oauth2-proxy/overlays/m2m-keycloak/patch-oauth2-proxy-config.yaml
|
||||||
|
- common/oauth2-proxy/overlays/m2m-keycloak/secrets.env
|
||||||
|
- dip/kubeflow-core/ingress.yaml
|
||||||
|
- dip/applicationset/kubeflow-applicationset.yaml
|
||||||
|
```
|
||||||
|
- 변수 예시
|
||||||
|
``` yaml
|
||||||
|
HOST='kubeflow.example.org'
|
||||||
|
DOMAIN='example.org'
|
||||||
|
OIDC_ISSUER_URL='https://keycloak.example.org/realms/paasup'
|
||||||
|
OIDC_JWKS_URL='http://kubeflow.platform.svc.cluster.local/realms/paasup/protocol/openid-connect/certs'
|
||||||
|
REDIRECT_URL='https://kubeflow.example.org/oauth2/callback'
|
||||||
|
CLIENT_ID='kubeflow'
|
||||||
|
CLIENT_SECRET='NOARm1WehZbWIHt9Aheau9kDrefBrZy8'
|
||||||
|
COOKIE_SECRET='094f9651100c4ee4a3a7337e405d8650'
|
||||||
|
GIT_REPO_URL=https://gitea.example.org/dip/tenant-catalog
|
||||||
|
TAG=kubeflow/1.10.0
|
||||||
|
```
|
||||||
|
|
||||||
|
- 수정 위치
|
||||||
|
```
|
||||||
|
# 변수 처리된 파일에 값 수정
|
||||||
|
## 1. dip/kubeflow-core/ingress.yaml
|
||||||
|
## 파일 내 $HOST 수정
|
||||||
|
|
||||||
|
## 2. dip/kubeflow-dependencies/knative-serving/patches/config-domain.yaml
|
||||||
|
## $DOMAIN 수정
|
||||||
|
|
||||||
|
## 3. common/oauth2-proxy/overlays/m2m-keycloak/m2m.env
|
||||||
|
## $OIDC_ISSUER_URL와 $OIDC_JWKS_URL 수정
|
||||||
|
|
||||||
|
## 4. common/oauth2-proxy/overlays/m2m-keycloak/patch-oauth2-proxy-config.yaml
|
||||||
|
## $OIDC_ISSUER_URL와 $REDIRECT_URL 수정
|
||||||
|
|
||||||
|
## 5. common/oauth2-proxy/overlays/m2m-keycloak/secrets.env
|
||||||
|
## $CLIENT_ID / $CLIENT-SECRET / $COOKIE-SECRET 수정
|
||||||
|
|
||||||
|
## 6. dip/applicationset/kubeflow-applicationset.yaml
|
||||||
|
## $GIT_REPO_URL / $TAG 수정
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### 2. 배포 방법
|
||||||
|
- 배포 전 검토 사항
|
||||||
|
- keycloak 내 oicd 설정 확인
|
||||||
|
- gitea repogitory 구성 확인
|
||||||
|
- argocd 배포 확인
|
||||||
|
- argocd 내 repository 등록 확인
|
||||||
|
- 배포
|
||||||
|
``` sh
|
||||||
|
kubectl apply -f dip/applicationset/kubeflow-applicationset.yaml
|
||||||
|
```
|
||||||
+3
@@ -23,3 +23,6 @@ spec:
|
|||||||
- /dex/*
|
- /dex/*
|
||||||
- /dex/**
|
- /dex/**
|
||||||
- /oauth2/*
|
- /oauth2/*
|
||||||
|
- /v1*
|
||||||
|
- /v2*
|
||||||
|
- /openai*
|
||||||
|
|||||||
+3
@@ -22,3 +22,6 @@ spec:
|
|||||||
- /dex/*
|
- /dex/*
|
||||||
- /dex/**
|
- /dex/**
|
||||||
- /oauth2/*
|
- /oauth2/*
|
||||||
|
- /v1*
|
||||||
|
- /v2*
|
||||||
|
- /openai*
|
||||||
|
|||||||
@@ -0,0 +1,88 @@
|
|||||||
|
# Kubeflow DIP용 Knative Serving 구성
|
||||||
|
|
||||||
|
이 디렉토리는 Kubeflow DIP(Data Intelligence Platform) 배포의 일부로 사용되는 Knative Serving의 Kustomization 구성을 포함합니다.
|
||||||
|
|
||||||
|
## 개요
|
||||||
|
|
||||||
|
이 구성은 DIP 환경에 맞춤화된 사용자 정의 패치를 통해 기본 Knative Serving 설치를 확장합니다. 공통 Knative Serving 기본 구성을 참조하고 배포를 사용자 정의하기 위해 여러 패치를 적용합니다.
|
||||||
|
|
||||||
|
## 구조
|
||||||
|
|
||||||
|
```
|
||||||
|
knative-serving/
|
||||||
|
├── kustomization.yaml # 메인 Kustomization 구성
|
||||||
|
├── patches/ # 사용자 정의 패치 디렉토리
|
||||||
|
│ ├── config-deployment.yaml # 배포 리소스 구성
|
||||||
|
│ ├── config-feature.yaml # 기능 플래그 구성
|
||||||
|
│ ├── config-domain.yaml # 도메인 구성
|
||||||
|
│ ├── config-network.yaml # 네트워크 구성
|
||||||
|
│ ├── gateway-selector-in-knative-serving.yaml # knative-serving 네임스페이스용 게이트웨이 구성
|
||||||
|
│ └── gateway-selector-in-istio-system.yaml # istio-system 네임스페이스용 서비스 구성
|
||||||
|
└── README.md # 이 파일
|
||||||
|
```
|
||||||
|
|
||||||
|
## 구성 세부사항
|
||||||
|
|
||||||
|
### 기본 리소스
|
||||||
|
- **기본 경로**: `../../../common/knative/knative-serving/base`
|
||||||
|
- Kubeflow 배포 전반에서 공유되는 공통 Knative Serving 기본 구성을 참조
|
||||||
|
|
||||||
|
### 적용된 패치
|
||||||
|
|
||||||
|
#### 1. 배포 구성 (`config-deployment.yaml`)
|
||||||
|
- **목적**: 큐 사이드카 컨테이너의 리소스 요청 구성
|
||||||
|
- **설정**:
|
||||||
|
- 큐 사이드카 CPU 요청: `25m`
|
||||||
|
- 큐 사이드카 메모리 요청: `400Mi`
|
||||||
|
|
||||||
|
#### 2. 기능 구성 (`config-feature.yaml`)
|
||||||
|
- **목적**: 특정 Knative Serving 기능 활성화
|
||||||
|
- **설정**:
|
||||||
|
- 런타임 클래스 지원을 위한 `kubernetes.podspec-runtimeclassname` 기능 활성화
|
||||||
|
|
||||||
|
#### 3. 도메인 구성 (`config-domain.yaml`)
|
||||||
|
- **목적**: 사용자 정의 도메인 구성 설정
|
||||||
|
- **설정**:
|
||||||
|
- `hopt.paasup.io`를 기본 도메인으로 구성
|
||||||
|
|
||||||
|
#### 4. 네트워크 구성 (`config-network.yaml`)
|
||||||
|
- **목적**: 네트워크 라우팅 및 도메인 템플릿 정의
|
||||||
|
- **설정**:
|
||||||
|
- 도메인 템플릿: `{{.Name}}.{{.Namespace}}.{{.Domain}}`
|
||||||
|
- 이는 `서비스명.네임스페이스.도메인` 형식의 URL을 생성
|
||||||
|
|
||||||
|
#### 5. 게이트웨이 구성 (`gateway-selector-in-knative-serving.yaml`)
|
||||||
|
- **목적**: 로컬 클러스터 액세스를 위한 Istio 게이트웨이 구성
|
||||||
|
- **네임스페이스**: `knative-serving`
|
||||||
|
- **설정**:
|
||||||
|
- 게이트웨이 이름: `knative-local-gateway`
|
||||||
|
- 셀렉터 레이블: `app: cluster-local-gateway`, `istio: cluster-local-gateway`
|
||||||
|
|
||||||
|
#### 6. 서비스 구성 (`gateway-selector-in-istio-system.yaml`)
|
||||||
|
- **목적**: 게이트웨이 라우팅을 위한 istio-system 네임스페이스의 서비스 구성
|
||||||
|
- **네임스페이스**: `istio-system`
|
||||||
|
- **설정**:
|
||||||
|
- 서비스 이름: `knative-local-gateway`
|
||||||
|
- 셀렉터 레이블: `app: cluster-local-gateway`, `istio: cluster-local-gateway`
|
||||||
|
|
||||||
|
## 사용법
|
||||||
|
|
||||||
|
이 구성은 Kubeflow DIP 스택을 배포할 때 자동으로 적용됩니다. 패치는 다음을 보장합니다:
|
||||||
|
|
||||||
|
1. **리소스 최적화**: 큐 사이드카가 적절한 리소스 요청을 사용
|
||||||
|
2. **기능 활성화**: 향상된 보안을 위한 런타임 클래스 이름 지원
|
||||||
|
3. **도메인 관리**: 사용자 정의 도메인 라우팅이 적절히 구성
|
||||||
|
4. **네트워크 라우팅**: 구성된 도메인 템플릿을 통해 서비스에 액세스 가능
|
||||||
|
5. **Istio 통합**: Istio 메시를 위한 적절한 게이트웨이 및 서비스 구성
|
||||||
|
|
||||||
|
## 의존성
|
||||||
|
|
||||||
|
- Knative Serving 기본 설치
|
||||||
|
- Istio 서비스 메시
|
||||||
|
- 적절한 RBAC 권한을 가진 Kubernetes 클러스터
|
||||||
|
|
||||||
|
## 참고사항
|
||||||
|
|
||||||
|
- `hopt.paasup.io` 도메인이 DNS 설정에서 적절히 구성되어야 함
|
||||||
|
- Istio cluster-local-gateway가 배포되고 실행 중인지 확인
|
||||||
|
- 큐 사이드카의 리소스 요청은 일반적인 DIP 워크로드에 최적화됨
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Kubeflow Dependencies Kustomization
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- ../../../common/knative/knative-serving/base
|
||||||
|
|
||||||
|
patches:
|
||||||
|
- path: patches/config-deployment.yaml
|
||||||
|
- path: patches/config-feature.yaml
|
||||||
|
- path: patches/config-domain.yaml
|
||||||
|
- path: patches/config-network.yaml
|
||||||
|
- path: patches/gateway-selector-in-knative-serving.yaml
|
||||||
|
- path: patches/gateway-selector-in-istio-system.yaml
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: config-domain
|
||||||
|
namespace: knative-serving
|
||||||
|
data:
|
||||||
|
$DOMAIN: ""
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: config-features
|
||||||
|
namespace: knative-serving
|
||||||
|
data:
|
||||||
|
kubernetes.podspec-runtimeclassname: "enabled"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: config-network
|
||||||
|
namespace: knative-serving
|
||||||
|
data:
|
||||||
|
domain-template: "{{.Name}}.{{.Namespace}}.{{.Domain}}"
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: knative-local-gateway
|
||||||
|
namespace: istio-system
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: cluster-local-gateway
|
||||||
|
istio: cluster-local-gateway
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: networking.istio.io/v1beta1
|
||||||
|
kind: Gateway
|
||||||
|
metadata:
|
||||||
|
name: knative-local-gateway
|
||||||
|
namespace: knative-serving
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: cluster-local-gateway
|
||||||
|
istio: cluster-local-gateway
|
||||||
@@ -7,8 +7,8 @@ resources:
|
|||||||
- ../../common/cert-manager/kubeflow-issuer/base
|
- ../../common/cert-manager/kubeflow-issuer/base
|
||||||
# OAuth2-Proxy
|
# OAuth2-Proxy
|
||||||
- ../../common/oauth2-proxy/overlays/m2m-keycloak
|
- ../../common/oauth2-proxy/overlays/m2m-keycloak
|
||||||
# KNative
|
# KNative dip patch
|
||||||
- ../../common/knative/knative-serving/overlays/gateways
|
- ./knative-serving
|
||||||
# Kubeflow namespace
|
# Kubeflow namespace
|
||||||
- ../../common/kubeflow-namespace/base
|
- ../../common/kubeflow-namespace/base
|
||||||
# NetworkPolicies
|
# NetworkPolicies
|
||||||
@@ -17,6 +17,3 @@ resources:
|
|||||||
- ../../common/kubeflow-roles/base
|
- ../../common/kubeflow-roles/base
|
||||||
# Kubeflow Istio Resources
|
# Kubeflow Istio Resources
|
||||||
- ../../common/istio-1-24/kubeflow-istio-resources/base
|
- ../../common/istio-1-24/kubeflow-istio-resources/base
|
||||||
|
|
||||||
patchesStrategicMerge:
|
|
||||||
- config-deployment-patch.yaml
|
|
||||||
Reference in New Issue
Block a user