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/**
|
||||
- /oauth2/*
|
||||
- /v1*
|
||||
- /v2*
|
||||
- /openai*
|
||||
|
||||
+3
@@ -22,3 +22,6 @@ spec:
|
||||
- /dex/*
|
||||
- /dex/**
|
||||
- /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
|
||||
# OAuth2-Proxy
|
||||
- ../../common/oauth2-proxy/overlays/m2m-keycloak
|
||||
# KNative
|
||||
- ../../common/knative/knative-serving/overlays/gateways
|
||||
# KNative dip patch
|
||||
- ./knative-serving
|
||||
# Kubeflow namespace
|
||||
- ../../common/kubeflow-namespace/base
|
||||
# NetworkPolicies
|
||||
@@ -17,6 +17,3 @@ resources:
|
||||
- ../../common/kubeflow-roles/base
|
||||
# Kubeflow Istio Resources
|
||||
- ../../common/istio-1-24/kubeflow-istio-resources/base
|
||||
|
||||
patchesStrategicMerge:
|
||||
- config-deployment-patch.yaml
|
||||
Reference in New Issue
Block a user