17장. 인터페이스 수준 네트워크 sysctl 구성
Linux에서 sysctl을 사용하면 관리자가 런타임 시 커널 매개변수를 수정할 수 있습니다. CNI(Container Network Interface) 메타 플러그인을 사용하여 인터페이스 수준 네트워크 sysctl을 수정할 수 있습니다. 튜닝 CNI 메타 플러그인은 설명된 대로 기본 CNI 플러그인을 사용하여 체인에서 작동합니다.
기본 CNI 플러그인은 인터페이스를 할당하고 런타임 시 튜닝 CNI 메타 플러그인에 전달합니다. tuned CNI 메타 플러그인을 사용하여 네트워크 네임스페이스에서 일부 sysctl 및 여러 인터페이스 속성(promiscuous 모드, all-multicast 모드, MTU 및 MAC 주소)을 변경할 수 있습니다. 조정 CNI 메타 플러그인 구성에서 인터페이스 이름은 IFNAME
토큰으로 표시되고 런타임 시 인터페이스의 실제 이름으로 교체됩니다.
OpenShift Container Platform에서 튜닝 CNI 메타 플러그인은 인터페이스 수준 네트워크 sysctl 변경만 지원합니다.
17.1. 튜닝 CNI 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 인터페이스 수준 네트워크 net.ipv4.conf.IFNAME.accept_redirects
sysctl을 변경하도록 튜닝 CNI를 구성합니다. 이 예에서는 ICMP 리디렉션 패킷을 수락하고 전송할 수 있습니다.
프로세스
다음 콘텐츠를 사용하여
tuning-example.yaml
과 같은 네트워크 연결 정의를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow yaml 파일의 예는 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 yaml을 적용합니다.
oc apply -f tuning-example.yaml
$ oc apply -f tuning-example.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
networkattachmentdefinition.k8.cni.cncf.io/tuningnad created
networkattachmentdefinition.k8.cni.cncf.io/tuningnad created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 유사한 네트워크 연결 정의를 사용하여
examplepod.yaml
과 같은 Pod를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 구성된
NetworkAttachmentDefinition
의 이름을 지정합니다. - 2
runAsUser
는 컨테이너가 실행되는 사용자 ID를 제어합니다.- 3
runAsGroup
은 컨테이너가 실행되는 기본 그룹 ID를 제어합니다.- 4
allowPrivilegeEscalation
은 Pod에서 권한 에스컬레이션을 허용하도록 요청할 수 있는지 여부를 결정합니다. 지정되지 않은 경우 기본값은 true입니다. 이 부울은no_new_privs
플래그가 컨테이너 프로세스에 설정되는지 여부를 직접 제어합니다.- 5
기능을
사용하면 전체 root 액세스 권한을 부여하지 않고 권한 있는 작업을 수행할 수 있습니다. 이 정책은 모든 기능이 Pod에서 삭제되도록 합니다.- 6
runAsNonRoot: true
를 사용하려면 컨테이너가 0 이외의 UID가 있는 사용자로 실행해야 합니다.- 7
RuntimeDefault
는 Pod 또는 컨테이너 워크로드에 대한 기본 seccomp 프로필을 활성화합니다.
다음 명령을 실행하여 yaml을 적용합니다.
oc apply -f examplepod.yaml
$ oc apply -f examplepod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod가 생성되었는지 확인합니다.
oc get pod
$ oc get pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE tunepod 1/1 Running 0 47s
NAME READY STATUS RESTARTS AGE tunepod 1/1 Running 0 47s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod에 로그인합니다.
oc rsh tunepod
$ oc rsh tunepod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성된 sysctl 플래그의 값을 확인합니다. 예를 들어 다음 명령을 실행하여
net.ipv4.conf.net1.accept_redirects
값을 찾습니다.sysctl net.ipv4.conf.net1.accept_redirects
sh-4.4# sysctl net.ipv4.conf.net1.accept_redirects
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예상 출력
net.ipv4.conf.net1.accept_redirects = 1
net.ipv4.conf.net1.accept_redirects = 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow