docker networking docker run --network none nginx # 네트워킹을 하지 않음 docker run --network host nginx # host 네트워크를 사용함 디폴트로는 bridge가 PC 내에 생성되면서, docker가 bridge에 붙음 bridge가 생성되는 건 ip link add docker0 type bridge명령어를 입력한 것과 같음 ip netns명령어를 입력하면 container가 network namespace 를 가지게 된 것을 확인할 수 있음 ip link ip netns docker inspect ip -n b3165c10a92b linkdocker에서 port mapping을 하는 방식 iptables \ -t nat \ -A PRER..
Networking 네트워크가 작동하는 방식 같은 네트워크 상에서는 스위치로 패킷을 전송할 수 있음 다른 네트워크 상에서는 router가 있어야 함 만약 PC A, B가 같은 네트워크에 있고 PC B, C가 같은 네트워크에 있다면 라우팅 테이블을 추가하면 A와 C가 통신할 수 있음 하지만, response를 받을 수 없는데 B는 기본적으로 response를 forwarding하지 않기 때문 보안적인 이슈인데, 만약 public network와 private network를 연결했을 때 forward가 된다면 문제가 있기 때문 ip 관련 연결 확인 커맨드 네트워크에 물리적으로 연결되었는지 확인: ip link 자신의 컴퓨터가 ip 주소를 할당받았는지 확인: ip addr routing table 확인: r..
Storage CSI는 k8s의 귀속적인 스펙이 아니라 ochestration tool 중에서의 universal standard임 CSI는 volume create시에 RPC call을 요청받아서 volume을 만드는 방식으로 구현되어야 함 Volumes pod에서 volume을 사용하는 예제(node의 host path) (이 경우에 각 node마다 저장된 데이터가 다를 수 있음) NFS, GlusterFS, Flocker, Ceph, SCALEIO 등을 이용해서 해결할 수 있음 apiVersion: v1 kind: Pod metatdata: name: random-number-generator spec: containers: - image: alpine name: alpine command: ["/..
docker volume 옛날 스타일 docker run -v /data/mysql:/var/lib/mysql mysql 최신 스타일 docker run --mount type=bind,source=/data/mysql,target=/var/lib/mysql mysql Storage driver volume은 storage driver에 의해서 관리되는 것이 아님 volume은 volume plugin에 의해서 관리됨 volume driver 예시 Local Azure File Storage Convoy DigitalOcean Block Storage Flocker gce-docker GluterFS NetApp RexRay Portworx VMWare vSphere Storage volume drive..
config file kubectl get pods --kubeconfig config $HOME/.kube/config config 파일은 세 가지 항목으로 구성되어 있음 clusters contexts users config.yaml 예시 apiVersion: v1 kind: Config clusters: - name: my-kube-playground cluster: certificate-authority: ca.crt server: https://my-kube-playground:6443 contexts: - name: my-kube-admin@my-kube-playground context: cluster: my-kube-playground user: my-kube-admin (namespace..