README.md 수정
This commit is contained in:
132
README.md
132
README.md
@@ -1,95 +1,63 @@
|
||||
# 구성 (Local 실행 기준)
|
||||
1. mapping.yaml
|
||||
> 마이그레이션 할 어노테이션 정의가 작성 되는 파일
|
||||
```yaml
|
||||
# 예시
|
||||
nginx.ingress.kubernetes.io/ssl-redirect:
|
||||
haproxy: haproxy.org/ssl-redirect
|
||||
support: full
|
||||
# Ingress Migrator
|
||||
|
||||
nginx.ingress.kubernetes.io/force-ssl-redirect:
|
||||
haproxy: haproxy.org/ssl-redirect
|
||||
support: full
|
||||
### Container Image Build
|
||||
```shell
|
||||
git clone https://git.jhcloud.kr/sa_8001/ingress_migrate_annotations.git
|
||||
cd ingress_migrate_annotations
|
||||
podman build -t sa8001/ngtoha:v3.1.7 .
|
||||
```
|
||||
|
||||
nginx.ingress.kubernetes.io/backend-protocol:
|
||||
haproxy: haproxy.org/backend-protocol
|
||||
support: full
|
||||
### Deploy
|
||||
```shell
|
||||
kubectl apply -f ./yaml -n {NAMESPACE_NAME}
|
||||
```
|
||||
|
||||
nginx.ingress.kubernetes.io/load-balance:
|
||||
haproxy: haproxy.org/load-balance
|
||||
support: full
|
||||
```
|
||||
support 기준은 아래와 같음
|
||||
```yaml
|
||||
full : 1:1 매핑 되는 옵션
|
||||
# ex)
|
||||
# nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
# haproxy.org/ssl-redirect: "true"
|
||||
### 결과
|
||||
```shell
|
||||
[root@p-jhbyun-master covert]# kubectl get all -n testapp
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
pod/ingress-migrator-web-6777bb7cb7-k9kj7 1/1 Running 0 63s
|
||||
|
||||
partial : 기능은 같으나, 방식이 다름
|
||||
# nginx.ingress.kubernetes.io/limit-rps: "10"
|
||||
# haproxy.org/rate-limit-requests: "10"
|
||||
# haproxy.org/warning-limit-rps: "burst/period semantics differ"
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
service/ingress-migrator-web NodePort 10.97.101.243 <none> 80:30922/TCP 63s
|
||||
|
||||
unsupported : 지원 되지 않음
|
||||
NAME READY UP-TO-DATE AVAILABLE AGE
|
||||
deployment.apps/ingress-migrator-web 1/1 1 1 63s
|
||||
|
||||
# ex)
|
||||
# nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||
# more_set_headers "X-Test: foo";
|
||||
```
|
||||
NAME DESIRED CURRENT READY AGE
|
||||
replicaset.apps/ingress-migrator-web-6777bb7cb7 1 1 1 63s
|
||||
```
|
||||
|
||||
2. migrate.py
|
||||
> 실행 파일, 옵션은 아래와 같음 (pip install ruamel.yaml 실행 필요)
|
||||
```shell
|
||||
--single : 하나의 파일로 결과물 생성
|
||||
--split : 각각의 yaml 파일로 저장
|
||||
--out : 저장 경로 설정
|
||||
--ingress-class : ingressClassName 설정
|
||||
--report : report 파일 저장 경로
|
||||
--mapping : 맵핑 파일 지정 (default : mapping.yaml)
|
||||
--from-ingress-class : 기존 ingressclassname 지정 (지정된 대상만 변환)
|
||||
--namespace : 지정시 해당 namespace 내 ingress만 변환
|
||||
```
|
||||
### UI
|
||||

|
||||
- 메인 화면, 변환 대상 인그레스 클레스 네임, 변경할 인그레스 클레스 네임, 네임스페이스 입력
|
||||
- From ingressClassName : default 값 nginx
|
||||
- To ingressClassName: default 값 haproxy
|
||||
- Namespace : 미입력시 모든 네임스페이스 대상
|
||||
|
||||
# 구성 (Kubernetes 실행 기준)
|
||||
1. Dockerfile
|
||||
> 이미지 빌드 수행
|
||||

|
||||
- 각 `Yaml 이름` 클릭시 미리 보기 가능
|
||||
- `View Migration Report` 클릭시 변환 결과 확인
|
||||
- `Download Result ZIP` 클릭시 변환된 Yaml 다운로드
|
||||
- `Download Backup ZIP` 클릭시 원본 Yaml 다운로드
|
||||
- `Replace Converted YAML` 변환된 Yaml을 사용하여 ingress 재배포
|
||||
- `Rollback from Backup` 원본 Yaml을 사용하여 ingress 재배포
|
||||
|
||||
2. mapping.yaml 파일 configmap으로 Kubernetes에 배포
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: ingress-annotation-mapping
|
||||
namespace: default
|
||||
data:
|
||||
mapping.yaml: |
|
||||
nginx.ingress.kubernetes.io/ssl-redirect:
|
||||
haproxy: haproxy.org/ssl-redirect
|
||||
support: full
|
||||

|
||||
- 변환된 Yaml 내용 확인 가능
|
||||
- 내용 수정 후 `Save` 클릭시 저장
|
||||
- `Cancel` 클릭시 취소 및 뒤로가기
|
||||
|
||||
nginx.ingress.kubernetes.io/force-ssl-redirect:
|
||||
haproxy: haproxy.org/ssl-redirect
|
||||
support: full
|
||||

|
||||
- 백업된 원본 Yaml 내용 확인
|
||||
- 원본은 `수정 불가능`
|
||||
|
||||
nginx.ingress.kubernetes.io/backend-protocol:
|
||||
haproxy: haproxy.org/backend-protocol
|
||||
support: full
|
||||

|
||||
- 리포트를 통해서 변환된 내용 확인 가능
|
||||
- 해당 내용은 변환된 각 Yaml에도 있음
|
||||
|
||||
nginx.ingress.kubernetes.io/load-balance:
|
||||
haproxy: haproxy.org/load-balance
|
||||
support: full
|
||||

|
||||
- 변환된 Yaml을 통해서 재배포 후 결과 출력
|
||||
|
||||
nginx.ingress.kubernetes.io/rewrite-target:
|
||||
haproxy: haproxy.org/path-rewrite
|
||||
support: full
|
||||
|
||||
nginx.ingress.kubernetes.io/proxy-connect-timeout:
|
||||
haproxy: haproxy.org/proxy-connect-timeout
|
||||
support: full
|
||||
```
|
||||
|
||||
3. Pod 배포
|
||||
```
|
||||
작성중
|
||||
```
|
||||

|
||||
- 백업된 원본 Yaml을 통해서 재배포 후 결과 출력
|
||||
Reference in New Issue
Block a user