https://github.com/tmax-cloud/install-networkwebhook
https://github.com/tmax-cloud/install-networkwebhook
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tmax-cloud/install-networkwebhook
- Owner: tmax-cloud
- Created: 2020-12-15T09:01:11.000Z (over 5 years ago)
- Default Branch: hypercloud-5.1
- Last Pushed: 2023-06-08T01:18:09.000Z (about 3 years ago)
- Last Synced: 2025-04-19T10:10:08.750Z (over 1 year ago)
- Language: Shell
- Size: 35.2 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Network Webhook version 0.1.5 설치 가이드
## Prerequisites
1. [Hypernet-Local-Agent](https://github.com/tmax-cloud/install-networkagent)
* Network Webhook이 동작하기 위해, hypernet-local-agent-system namespace가 생성되어있어야 합니다.
## 폐쇄망 설치 가이드
설치를 진행하기 전 아래의 과정을 통해 필요한 이미지 및 yaml 파일을 준비한다.
1. **폐쇄망에서 설치하는 경우** 사용하는 image repository에 Agent 설치 시 필요한 이미지를 push한다.
* 작업 디렉토리 생성 및 환경 설정
```bash
$ export NETWORK_HOOK_VERSION=0.1.5
```
* 외부 네트워크 통신이 가능한 환경에서 필요한 이미지를 다운받는다.
```bash
$ sudo docker pull tmaxcloudck/network-hook:${NETWORK_HOOK_VERSION}
$ sudo docker save tmaxcloudck/network-hook:${NETWORK_HOOK_VERSION} > network-hook_${NETWORK_HOOK_VERSION}.tar
```
2. 위의 과정에서 생성한 tar 파일들을 폐쇄망 환경으로 이동시킨 뒤 사용하려는 registry에 이미지를 push한다.
```bash
$ sudo docker load < network-hook_${NETWORK_HOOK_VERSION}.tar
$ sudo docker tag tmaxcloudck/network-hook:${NETWORK_HOOK_VERSION} ${REGISTRY}/tmaxcloudck/network-hook:${NETWORK_HOOK_VERSION}
$ sudo docker push ${REGISTRY}/tmaxcloudck/network-hook:${NETWORK_HOOK_VERSION}
```
## Install Steps
1. [TLS 통신을 위한 Certificate와 Key 생성](#step1 "step1")
2. [Network-hook 설치](#step2 "step2")
3. [Network-hook 설치 확인](#step3 "step3")
Step 1. TLS 통신을 위한 Certificate와 key 생성
* 목적 : `TLS 통신을 위한 Certificate와 key 생성 및 network-hook.yaml에 해당 정보 반영`
* 생성 순서 :
* CSR 인증 및 cert/key secret으로 생성
* Webhook Server 와 API Server간 TLS 통신을 위해 Kubernetes CSR을 이용하여 Cert와 Key 생성
* Cert와 key를 secret으로 생성
* network-hook.yaml의 값을 자동으로 반영
* patch.sh가 있는 디렉토리로 이동한 후, 스크립트를 실행하여 적용
* network-hook.yaml을 patch.sh와 반드시 같은 디렉토리에 위치시켜야 함
```bash
./patch.sh
```
* 스크립트가 정상적으로 실행되면, 다음 메시지가 출력됨
```bash
INFO: patch script has executed successfully
```
Step 2. Network-hook 설치
* 목적 : `Network-hook 설치`
* 생성 순서 :
* Network-hook 설치
```bash
kubectl apply -f network-hook.yaml
```
* 로그 레벨 조정 :
* containers 하위에 command 및 args 추가로 로그 레벨 조정 가능
```bash
...
command: ["/network-hook"]
args: ["-v=0"]
```
* v=0 or 1로 조절할 수 있으며, 낮을 수록 로그의 양이 줄어듦.
Step 3. Network-hook 설치 확인
* 목적 : `Network-hook 설치 확인`
* 순서 :
* kubectl get deployment -n hypernet-local-agent-system
```bash
NAME READY UP-TO-DATE AVAILABLE AGE
network-hook-deployment 1/1 1 1 17h
```
* network-hook-deployment가 생성되고, READY가 1/1인지 확인
* kubectl get service -n hypernet-local-agent-system
```bash
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
network-hook-svc ClusterIP 10.109.163.35 443/TCP 17h
```
* network-hook-svc가 생성되었는지 확인
* kubectl get mutatingwebhookconfiguration
```bash
NAME WEBHOOKS AGE
network-hook-webhook-cfg 1 17h
```
* network-hook-webhook-cfg가 생성되었는지 확인
## 인증서 갱신
* Install Step의 step1, step2를 실행 후 Network-hook deployment rollout restart 실행
```bash
$ kubectl rollout restart deployment network-hook-deployment -n hypernet-local-agent-system
```
## 삭제 가이드
* 목적: `Network webhook 삭제`
* 삭제 순서: network-hook yaml 삭제 적용 `kubectl delete -f network-hook.yaml`