kubectl label node kpaas-contest-2.worker01 ingress=true
(3) Ingress Controller Pod 스케쥴링

# daemonset으로 구동
$ kubectl -n nginx-ingress get ds
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
nginx-ingress 2 2 2 2 2 ingress=true 63d
# pod 배포 현황 확인
$ kubectl -n nginx-ingress get pod -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-ingress-lhzn9 1/1 Running 0 63d 192.100.120.129 kpaas-contest-2.dmz-infra01 <none> <none>
nginx-ingress-pq4l2 1/1 Running 0 4m51s 192.100.87.129 kpaas-contest-2.worker01 <none> <none>

목표로 한 워커노드에 레이블을 설정하고 나면 nginx-ingress 데몬셋의 pod가 생성되고 아래 포트로 노드에 통신이 가능합니다.
https : 30443/tcp
http : 30080/tcp
nginx-ingress 네임스페이스의 service에 노드포트 형태로 설정되어 있습니다.
(4) Ingress 사용


...? 뭐임
https://manual.cloud.kt.com/kt/k2p-std-ingress
위 링크대로 해보겠음 -> 지금 처음 보는 문서와 같은 내용. 생략
nginx-ingress 의 기본 conf 파일은 아래 커맨드로 확인 가능합니다
# 기본 nginx.conf 확인
$ kubectl -n nginx-ingress exec nginx-ingress-pq4l2 -- cat /etc/nginx/nginx.conf
$ kubectl -n nginx-ingress exec nginx-ingress-pq4l2 -- cat /etc/nginx/nginx.conf
kubectl -n nginx-ingress exec [nginx-ingress POD명] -- cat /etc/nginx/nginx.conf
worker_processes auto;
daemon off;
error_log stderr notice;
pid /var/lib/nginx/nginx.pid;
events {
worker_connections 1024;
}
(생략)

각 namespace에 생성한 ingress에 대한 nginx.conf 파일은 아래 커맨드로 확인 가능합니다
kubectl -n nginx-ingress exec nginx-ingress-pq4l2 -- ls -al /etc/nginx/conf.d

kubectl -n nginx-ingress exec nginx-ingress-pq4l2 -- cat /etc/nginx/conf.d/cicd-jenkins.conf
현재 젠킨스 미설치로 위 코드에서 에러 발생. 젠킨스 세팅 완료 후 다시 확인하기

클러스터 전역 nw 설정
클러스터 전역 nw는 nginx-ingress namespace의 nginx-config 라는 configmap을 수정하여, 설정 할 수 있습니다
초기 구축 시, 해당 configmap의 data필드는 비워져 있으나, 필요한 network 설정 값을 아래 예시와 같이 추가할 수 있습니다
클러스터 전체에 영향도 갈 수 있으므로, 주의해서 설정 하십시오
configmap 수정 후, nginx-ingress pod는 자동 reload하여 설정을 반영합니다. (pod 재기동 불필요)
-> 클러스터 전역 nw 설정 / 일부 도메인 nw 설정 패스.
위 내용 전부 패스
Gitlab 접속 및 이용 방법 적용을 위해 ingress controller 적용.

로드밸런서 목록에서 방금 생성한 https용 loadbalancer의 사설 ip를 확인합니다.
로드밸런서를 통한 외부 통신 설정 으로 우선 적용함. 다만 진입점으로 고려중인 워커 노드가 한 개일수 있어 추후 변경 필요할 수 있음.





새로 IP 생성


방화벽 설정

Gitlab Ingress Yaml 파일 생성
user@[option-test]:~$ vim cicd.gitlab.ingress.yml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: gitlab-http
namespace: cicd
spec:
ingressClassName: nginx
rules:
- host: [ Gitlab Ingress 도메인 주소(사용자 지정) ]
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: gitlab
port:
name: http



kubectl -n cicd create secret tls gitlab-cert --cert ./server.crt --key ./server.key

nginx-ingress-pq4l2
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-ingress-lhzn9 1/1 Running 0 66d 192.100.120.129 kpaas-contest-2.dmz-infra01 <none> <none>
nginx-ingress-pq4l2 1/1 Running 0 3d 192.100.87.129 kpaas-contest-2.worker01 <none> <none>

