K8s-CNI-정리

https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview?hl=ko

두가지 URL로 CNI와 iptables의 연관 관계를 이해하고 정리 해보려한다.

CNI는 L2 / L3 / overlay 를 구성 및 k8s 의 네트워크을 관리한다.
이 때 k8s의 라우팅은 kube-proxy를 이용해서 iptables 룰을 관리한다.

iptables는 netfilter의 라우팅 룰을 편리하게 사용할수 있도록 만들어진 인터페이스고, 실제로는 패킷을 필터링하고 라우팅하는 역할은 netfilter가 맡게된다.

-_-;

ipvs 모드는 또 다시 생각해보자.

https://docs.projectcalico.org/networking/enabling-ipvs

일단 k8s 의 iptables_mode가 굉장히 비 효율적인 방법이라는건 알 수 있었다.

k8s-cmd

yum install bash-completion -y
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc

kubectl apply -f 파일명
kubectl apply -k ./경로

kubectl create -f 파일

kubectl get node
kubectl get pods
kubectl get pods --all-namespaces
kubectl get service
kubectl get events
kubectl get pv
kubectl get pvc
kubectl get pc

kubectl delete -f 파일명
kubectl delete -k 파일명

k8s-Centos7-install

#!/bin/sh
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
swapoff -a
modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

yum install -y kubelet kubeadm kubectl
systemctl enable docker
systemctl enable kubelet
sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g' /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf

K8s centos7 base install

userdate 등에 넣고 쓸수있다.

#Master 에서 작업

kubeadm init --pod-network-cidr=사용하려는 pod cidr
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubeadm join token 이 나오면 cluster node 에서 join 해준다

kubernetes-newbe-1

개념만 맨날 보고 관리형만 썼더니 날 kuber는 완전 젬벵이었다.

그래서 CKA공부를 시작했다.

9월2일부터 시작해서 오늘 External-lb까지 설정해보았다.

정보가 너무 많고 다양한데 길잡이는 없었다.

그래서 이번 블로깅 컨셉을 잡았다.

리눅서의 쿠버 길잡이다.

앞으로 추가되는 포스팅 기대하시라!