Certified Kubernetes Administrator (CKA) with Practice Tests (강의 링크, 레퍼런스 노트)
ip link : 인터페이스 확인 명령어ip addr add [호스트 ip 주소] dev eth0 : 각 시스템에 ip 주소 할당ping [호스트 ip 주소] : 통신 가능 여부 확인route : 라우팅 테이블 확인ip route add [스위치 ip 주소] via [라우터 게이트웨이 ip 주소] : 다른 네트워크 연결, 라우팅 테이블에 해당 내용 작성됨echo 1 > /proc/sys/net/ipv4/ip_forward : 기본값 0ip route add default via [라우터 게이트웨이 ip 주소]ip link : 호스트의 인터페이스를 나열하고 수정ip addr : 인터페이스에 할당된 ip 주소 확인ip addr add 192.168.1.10/24 dev eth0 : 인터페이스에 ip 주소 할당ip route 혹은 route : 라우팅 테이블 확인ip route add 192.168.1.0/24 via 192.168.2.1 : 라우팅 테이블에 엔트리 추가cat /proc/sys/net/ipv4/ip_forward : 라우터처럼 설정된 호스트가 있을 때 ip 포워딩이 가능한지 여부 확인 (0일 경우 불가능)nslookup www.google.com : DNS 서버에서 호스트 이름을 검색할 때 사용dig www.google.com : DNS 서버에서 호스트 이름 검색, 더욱 자세한 내용 조회ps aux)ip nets add [네임스페이스명] : 네트워크 네임스페이스 생성ip netns exec [네임스페이스명] ip link : 네임스페이스 내에서 인터페이스 정보 확인ip -n [네임스페이스명] ip link 또한 동일한 명령어ip netns exec [네임스페이스명] arp/route : 네임스페이스 내에서 ARP 테이블, 라우팅 테이블 정보 확인ip link add [인터페이스명1] type veth peer name [인터페이스명2] : 두 개의 인터페이스 연결ip link set [인터페이스명] netns [네임스페이스명] : 인터페이스를 각각 해당되는 네임스페이스에 연결ip -n [네임스페이스명] addr add [ip주소] dev [인터페이스명] : ip 주소 할당ip -n [네임스페이스명] link set [인터페이스명] up : 링크 업, 네임스페이스가 서로 통신 가능ip -n [네임스페이스명] link del [인터페이스명] : 브릿지를 활용할 때 케이블 필요없어 삭제ip link add [브릿지명] type bridgeip link set dev [브릿지명] upip link add [인터페이스명1] type veth peer name [브릿지 인터페이스명1] : 네임스페이스마다 지정ip link set [인터페이스명] netns [네임스페이스명]ip link set [브릿지 인터페이스명] master [브릿지명]ip -n [네임스페이스명] addr add [ip주소] dev [인터페이스명]ip -n [네임스페이스명] link set [인터페이스명] upip addr add [브릿지 ip주소] dev [브릿지명] : 호스트와 모든 네임스페이스 연결 (브릿지 이용)ip netns exec [네임스페이스명] ip route add [외부 LAN ip 주소] via [브릿지와 로컬 호스트 인터페이스 ip 주소]iptables -t nat -A POSTROUTING -s [브릿지 ip 주소] -j MASQUERADEip netns exec [네임스페이스명] ip route add default via [브릿지와 로컬 호스트 인터페이스 ip 주소]iptables -t nat -A PREROUTING --dport 80 --to-destination [네임스페이스 ip주소:80] -j DNATdocker run --network none [이름]docker run --network host [이름]docker run [이름]docker network ls : bridge라는 이름으로 조회됨ip link : docker0이라는 이름으로 조회됨ip addr)ip netns : 도커는 컨테이너 실행 시 네트워크 네임스페이스를 생성docker inspect [컨테이너 ID] : 네트워크 네임스페이스 확인 가능ip link : 브릿지의 인터페이스 엔드 확인 가능ip -n [네트워크 네임스페이스명] link : 네트워크 네임스페이스의 엔드 확인 가능docker run -p 8080:80 [컨테이너명] : 도커 호스트 8080과 컨테이너의 포트(80)를 연결curl http://[도커 호스트 IP]:8080 : 외부 사용자 또한 컨테이너의 어플리케이션 접근 가능bridge add [컨테이너 ID] [네임스페이스명]docker run --network=cni-bridge [컨테이너명] : 네트워크 플러그인 이런 방식으로 사용 불가docker run --network=none [컨테이너명] 후 수동으로 bridge add [컨테이너ID] [네임스페이스명] 진행해줘야 함ip linkip address 혹은 ip addr 혹은 ip aip address show type bridgeip addr add [ip주소] dev [인터페이스]ip route 혹은 routenetstatnetstat -npl | grep -i schedulerip link add v-net-0 type bridgeip link set dev v-net-0 upip addr add 10.244.1.1/24 dev v-net-0ip addr add 10.244.2.1/24 dev v-net-0ip addr add 10.244.3.1/24 dev v-net-0ip link add ... : veth 쌍 생성 ip link set ... : veth를 각각의 인터페이스에 붙이기ip -n [네임스페이스] addr add ... : ip 주소 할당ip -n [네임스페이스] route add ... : ip 주소 할당ip -n [네임스페이스] link set ... : 인터페이스 활성화node1$ ip route add 10.244.2.2 via 192.168.1.12node1$ ip route add 10.244.3.2 via 192.168.1.13node2$ ip route add 10.244.1.2 via 192.168.1.11node2$ ip route add 10.244.3.2 via 192.168.1.13ps -aux | grep kubelet 에서도 확인 가능kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yamlkubectl get pods -n kube-system kubectl logs [pod명] weave -n kube-systemkubectl run [pod명] --image=[image명] --dry-run=client -o yaml > [파일명].yaml 처럼 yaml 파일 생성kubectl apply -f [파일명].yaml 으로 pod 생성kubectl exec [pod명] -- ip route 로 기본 게이트웨이 확인 가능kube-proxy --proxy-mode [userspace | iptables | ipvs] kubectl logs [pod명] -n kube-systemiptables -L -t nat | grep [서비스명]kube-api-server --service-cluster-ip-range ipNet ps aux | grep kube-api-servercd /etc/kubernetes/manifests/kube-api-server.yamlkubectl get all --all-namespacescurl http://web-servicecurl http://web-service.appscurl http://web-service.apps.svccurl http://web-service.apps.svc.cluster.localkubectl create ingress [ingress명] --rule="host/path=service:port"kubectl get svc [서비스명]kubectl create ingress [ingress명] -n [네임스페이스명] --rule="[path]=[서비스명]:[서비스포트]"kubectl create ingress ingress-pay -n critical-space --rule="/pay=pay-service:8282"