kubernetes

container multicast

misankim 2023. 3. 7. 00:23
컨테이너 멀티캐스트




# docker

 

## bridge 네트워크에서 컨테이너 안으로 멀티캐스트 트래픽 수신 불가(k8s와 동일, 포트 매핑해도 안됨)

 

## 네트워크 타입을 host로 설정 시 멀티캐스트 트래픽 수신 가능



# k8s

 

## 포드간 멀티캐스트는 weave-net cni 플러그인 배포 시 가능

 

## k8s에서도 host 네트워크 사용 시 멀티캐스트 트래픽 수신 가능

 

yaml 파일 예제

 

[root@ip-10-0-10-70 ~]# cat centos-deploy.yaml 
apiVersion: apps/v1 
kind: Deployment 
metadata: 
  name: centos 
spec: 
  replicas: 2
  selector: 
    matchLabels: 
      app: centos 
  template: 
    metadata: 
      labels: 
        app: centos
    spec: 
      hostNetwork: true
      dnsPolicy: ClusterFirstWithHostNet
      containers: 
      - name: centos
        image: centos:7  
        command: ["sleep"]
        args: ["3600000"]



## 호스트 네트워크 사용 시 서비스 포트 중복이 발생하기 때문에 podAntiAffinity 사용하여 포드 배치

 

[root@ip-10-0-10-70 ~]# cat centos-deploy.yaml 
apiVersion: apps/v1 
kind: Deployment 
metadata: 
  name: centos 
spec: 
  replicas: 2
  selector: 
    matchLabels: 
      app: centos 
  template: 
    metadata: 
      labels: 
        app: centos
    spec: 
      hostNetwork: true
      dnsPolicy: ClusterFirstWithHostNet
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values:
                - centos
            topologyKey: "kubernetes.io/hostname"
      containers: 
      - name: centos
        image: centos:7  
        command: ["sleep"]
        args: ["3600000"]