less than 1 minute read

vocabo 아직도 쿠버네티스 통신으로 씨름중

대체 개념만 알려주고 어떻게 하는건지 예시를 봐도 그냥 http url로 하는 request가 아니라 무슨 nginx 설정같은게 나오고 그래서 계속 헤매고 있다.

cluster ip가 클러스터 내에서만 가능한거고, pod가 각각 ip를 갖고있지만, 로드밸런서나 서비스 없이는 클러스터 밖과 통신 안되는거는 질리도록 알겠는데 그래서 클라이언트에서 url을 어떻게 해야 서버로 통신이 들어가느냐는 거다..

겨우 서비스 이름 등에 따라 환경변수가 채워진다는 걸 보고 그대로 따라했는데 여전히 안 된다. 결국 로드밸런서 추가해서 해당 포드에 접근하는거만 되고 포드간 통신을 성공을 못 하고 있다. 환경변수 설명대로

📂 server.js

    var client = new elasticsearch.Client({
        // host: process.env.ELASTICSEARCH_URL,
        host: process.env.ELASTIC_PORT,
        // log: 'trace'
        apiVersion: '6.6',
    });

📂 client.js

const server_url = 'http://SERVER_HOST/...';

이런 식으로 하면 ELASTIC_PORT 환경 변수가 채워져서 통신되지 않을까 했지만 여전히 실패했다.

내가 생각하는 방식은 클라이언트만 로드밸런서를 넣어서 외부에서 접근가능하게 하고, 나머지 서버와 elastic 포드는 cluster ip만으로 통신하게 하는건데, 이게 왜 이렇게 어렵지?

게다가 찾아보니 docker image 업데이트할 때, 쿠버네티스 자체 yaml 설정으로는 latest이미지에 푸쉬하는걸 감지하여 포드 업데이트하는게 지원되지 않는 모양이다. 그래서 나는 도커 이미지를 업데이트할 때마다 콘솔에서 latest 태그를 떼었다 붙였다 하면서 수동으로 업데이트하고있다..

kube-dns라는것도 있는 모양이고 아무래도 이걸 써야하나 싶긴 한데..

Tags:

Categories:

Updated:

Comments