
에 따라링크, 애플리케이션이 기본이 아닌 네트워크(eth2,3 등)로 포트를 여는 경우 여러 네트워크로 포드를 생성할 수 있습니다. 어떻게 서비스로 노출할 수 있나요? 서비스 yaml에서는 기본 이외의 서비스를 노출하는 방법을 찾지 못했습니다.
답변1
Multus를 사용하면 Pod에 네트워크 장치를 연결할 수 있지만 이러한 인터페이스는 Kubernetes 클러스터 SDN의 일부가 아닙니다.
Multus 기반 장치를 사용하면 DHCP, 고정 IP 등을 사용하여 포드에 IP를 할당할 수 있습니다. 이러한 주소는 Kubernetes SDN과 독립적이라는 점을 명심하세요.
해당 클러스터의 다른 컨테이너가 해당 엔드포인트를 연결해야 하는 경우 해당 트래픽은 SDN을 떠나 일반적인 기본 게이트웨이를 통과하게 되며, 이는 다시 Multus 주소 서브넷에 대한 일부 지식(라우팅)을 가져야 합니다.
그러나 SDN에서 주소를 지정하여 서비스를 생성할 수는 있습니다. 이는 서비스와 함께 다음과 같은 Endpoints 개체를 생성하여 수행됩니다.
---
apiVersion: v1
kind: Endpoints
metadata:
name: svc-out-sdn
namespace: ns
subsets:
- addresses:
- ip: 10.0.0.1
ports:
- name: tcp-80
port: 80
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: svc-out-sdn
namespace: ns
spec:
clusterIP: None
ports:
- name: tcp-80
port: 80