소개
게시글
질문&답변
2023.05.03
섹션6:인그레스(ingress) 실습 - 인그레스 통한 접속 시 IP 문제
인그레스의 ip는 별도로 할당받으신것으로 보이는데 베어메탈lb 같은것을 쓰셔서 할당받으신걸까요? 그래서 노드의 ip와 동일한 기능을 수행하는 ip를 할당 받으신것 같습니다. ==> 별도로 IP를 할당받지는 않았습니다. 자원을 모두 지우고 강의 자료에 명시된 아래 명령어만 사용하였습니다. kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io ingress-nginx-admission cat 일단 말씀주신 kubectl get node -o wide 실행 결과는 아래와 같습니다. root@master0:/home/user01# kubectl get node -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master0 Ready control-plane 110d v1.26.0 192.168.32.133 Ubuntu 20.04 LTS 5.4.0-26-generic containerd://1.6.12 node0 Ready 110d v1.26.0 192.168.32.134 Ubuntu 20.04 LTS 5.4.0-26-generic containerd://1.6.12 node1 Ready 110d v1.26.0 192.168.32.135 Ubuntu 20.04 LTS 5.4.0-26-generic containerd://1.6.12 기타 명령어 결과는 아래와 같습니다. root@master0:/home/user01# kubectl get ing -o wide NAME CLASS HOSTS ADDRESS PORTS AGE http-go-ingress * 192.168.32.135 80 9m48s root@master0:/home/user01# kubectl get ing -o yaml apiVersion: v1 items: - apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"networking.k8s.io/v1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"nginx","nginx.ingress.kubernetes.io/rewrite-target":"/welcome/test"},"name":"http-go-ingress","namespace":"default"},"spec":{"rules":[{"http":{"paths":[{"backend":{"service":{"name":"http-go","port":{"number":80}}},"path":"/welcome/test","pathType":"Exact"}]}}]}} kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/rewrite-target: /welcome/test creationTimestamp: "2023-05-02T21:44:34Z" generation: 1 name: http-go-ingress namespace: default resourceVersion: "233537" uid: 0d9ab748-f44c-4f27-9b49-286bf7a07583 spec: rules: - http: paths: - backend: service: name: http-go port: number: 80 path: /welcome/test pathType: Exact status: loadBalancer: ingress: - ip: 192.168.32.135 kind: List metadata: resourceVersion: "" root@master0:/home/user01# kubectl get all NAME READY STATUS RESTARTS AGE pod/http-go-56686cfd44-r2h2w 1/1 Running 0 15m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/http-go ClusterIP 10.111.165.210 80/TCP 15m service/kubernetes ClusterIP 10.96.0.1 443/TCP 19m NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/http-go 1/1 1 1 15m NAME DESIRED CURRENT READY AGE replicaset.apps/http-go-56686cfd44 1 1 1 15m ----- root@master0:/home/user01# kubectl get all -n ingress-nginx NAME READY STATUS RESTARTS AGE pod/ingress-nginx-admission-create-vn94g 0/1 Completed 0 14m pod/ingress-nginx-admission-patch-wdds2 0/1 Completed 0 14m pod/ingress-nginx-controller-6b58ffdc97-kgnwm 1/1 Running 0 14m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/ingress-nginx-controller NodePort 10.111.219.190 80:32022/TCP,443:31308/TCP 14m service/ingress-nginx-controller-admission ClusterIP 10.101.105.172 443/TCP 14m NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/ingress-nginx-controller 1/1 1 1 14m NAME DESIRED CURRENT READY AGE replicaset.apps/ingress-nginx-controller-6b58ffdc97 1 1 1 14m NAME COMPLETIONS DURATION AGE job.batch/ingress-nginx-admission-create 1/1 6s 14m job.batch/ingress-nginx-admission-patch 1/1 5s 14m 노드 IP를 이용한 결과는 아래와 같습니다. root@master0:/home/user01# curl 192.168.32.135:32022 404 Not Found 404 Not Found nginx ----- root@master0:/home/user01# curl 192.168.32.135:32022/welcome/test Welcome! http-go-56686cfd44-r2h2w ----- root@master0:/home/user01# curl 192.168.32.135:80 curl: (7) Failed to connect to 192.168.32.135 port 80: Connection refused root@master0:/home/user01# curl 192.168.32.135:80/welcome/test curl: (7) Failed to connect to 192.168.32.135 port 80: Connection refused ----- # 아래는 인그레스 클러스터 IP로의 접속 시도 입니다. root@master0:/home/user01# curl -v 10.111.219.190:80/welcome/test * Trying 10.111.219.190:80... * TCP_NODELAY set * connect to 10.111.219.190 port 80 failed: Connection refused * Failed to connect to 10.111.219.190 port 80: Connection refused * Closing connection 0 curl: (7) Failed to connect to 10.111.219.190 port 80: Connection refused root@master0:/home/user01# curl -v 10.111.219.190:32022/welcome/test * Trying 10.111.219.190:32022... * TCP_NODELAY set * connect to 10.111.219.190 port 32022 failed: Connection refused * Failed to connect to 10.111.219.190 port 32022: Connection refused * Closing connection 0 curl: (7) Failed to connect to 10.111.219.190 port 32022: Connection refused 위 질문에서 제가 잘못 표기했던 부분이 있네요ㅜ 죄송합니다. 실행 ❌ : curl 127.0.0.1:{ingress-nginx-controller NodePort의 PORT} 실행 ⭕ : curl {인그레스 노드 IP}:{ingress-nginx-controller NodePort의 PORT} 제가 궁금했던 부분은 영상에서는 kubectl get ing 에서 인그레스 노드 IP가 192.168.154.156 이고, kubectl get all -n ingress-nginx 에서 ingress-nginx-controller의 IP가 10.103.171.41 에 80:30921 포트가 할당된 상태입니다. 여기서 curl 127.0.0.1:30921/welcome/test 명령을 실행했을때 정상적으로 인그레스를 거쳐 서비스의 응답을 받는 것을 확인했는데요, 저는 루프백 127.0.0.1:{ingress-nginx-controller의 port 로 요청을 보내도 연결 자체가 되지 않는게 왜 그런것인지 궁금합니다..ㅜ 영상에서는 인그레스 노드의 IP가 마스터 노드와 같은 IP를 가진 것도 아닌데, 루프백 주소를 쓰신 것이 이해가 가지 않습니다, 제가 빠트린 개념이 있을까요...? 아래는 127.0.0.1로의 요청입니다. root@master0:/home/user01# curl -v 127.0.0.1:32022 * Trying 127.0.0.1:32022... * TCP_NODELAY set * connect to 127.0.0.1 port 32022 failed: Connection refused * Failed to connect to 127.0.0.1 port 32022: Connection refused * Closing connection 0 curl: (7) Failed to connect to 127.0.0.1 port 32022: Connection refused ----- root@master0:/home/user01# curl -v 127.0.0.1:32022/welcome/test * Trying 127.0.0.1:32022... * TCP_NODELAY set * connect to 127.0.0.1 port 32022 failed: Connection refused * Failed to connect to 127.0.0.1 port 32022: Connection refused * Closing connection 0 curl: (7) Failed to connect to 127.0.0.1 port 32022: Connection refused ----- #인그레스 서비스 정보입니다. root@master0:/home/user01# kubectl get svc -n ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ingress-nginx-controller NodePort 10.111.219.190 80:32022/TCP,443:31308/TCP 42m ingress-nginx-controller-admission ClusterIP 10.101.105.172 443/TCP 42m
- 2
- 2
- 914
질문&답변
2023.01.01
제가 놓친 부분이 있는지, 과제의 업데이트가 필요한건지 확인 부탁드립니다.
hasura 이미지 버전 "hasura/graphql-engine:v1.3.4-beta.3.cli-migrations" 으로 바꾸시면돼요. hasura cli migration v3에서 쓰는 migrations 포맷이 강사님 자료(v1)와는 호환이 안되어서 테이블이 생성이 안되더라구요. 방법이 2가지가 있는데, migration 파일 포맷을 v3로 바꾸기 hasura 버전을 v1로 사용 1이 좋은 방법이긴하나, 현재 강의 의도와는 멀어지고 시간이 걸리기에 2번으로 선택하였습니다.
- 1
- 2
- 216
질문&답변
2021.01.17
DVIA 앱 패치 후에 바이너리를 바꿔서 다시 실행하면 앱 시작 화면이 뜨고 앱이 종료돼버리네요..
해결했습니다. ldid를 이용해서 원본 바이너리의 서명값을 변조한 바이너리로 복사를 해줘야하네요 ㅎㅎ - 바이너리 교체 전 root# ldid -e 원본바이너리 > dvia.xml ----------------------------------------------------------------------------------- - 바이너리 교체 후 root# ldid -Sdvia.xml 변조바이너리 바이너리 교체 후 서명 붙여넣어주기전에 앱을 실행하면 ios 쉘에서 충돌이 나는거 같더라구요, 트윅 실행도 안되구요. 재부팅하고 재탈옥해줘야하는 번거로움이 있으니 주의해야 할거같네요.
- 2
- 6
- 403
질문&답변
2021.01.16
DVIA 앱 패치 후에 바이너리를 바꿔서 다시 실행하면 앱 시작 화면이 뜨고 앱이 종료돼버리네요..
기드라에서 Export 한 바이너리가 문제가 되네요.. 기드라로 연 다음 아무것도 안하고 Export 한뒤 넣고 실행해보아도 똑같이 실행이 안되네요..
- 2
- 6
- 403
질문&답변
2021.01.16
DVIA 앱 패치 후에 바이너리를 바꿔서 다시 실행하면 앱 시작 화면이 뜨고 앱이 종료돼버리네요..
ipa 설치 파일의 바이너리를 바꾸어 설치를 해봐도 같은 증상이 나타나네요..
- 2
- 6
- 403