도커 로그인
docker run -it ubuntu bash
hostnamectl set-hostname k8s-master-00
ufw disable
swapoff -a
cat << EOF | tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
cat << EOF | tee /etc/sysctl.d/sevas.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
cat << EOF | tee /etc/modules-load.d/sevas.conf
overlay
br_netfilter
EOF
확인
lsmod | grep br_netfilter
설정로드sysctl --system
apt-get install -y apt-transport-https
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl
docker login
kubelet --version
apt-get install nfs-kernel-serversystemctl daemon-reload
systemctl enable docker
systemctl enable kubelet
systemctl enable containerd
systemctl restart docker
systemctl restart kubelet
systemctl restart containerd
systemctl status kubelet
containerd config default | tee /etc/containerd/config.toml sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
service containerd restart
service kubelet restart
service NetworkManager restart
nslookup google.com
kubeadm init --pod-network-cidr=192.168.0.0/16
- 메세지 → 해시 기록해둘 것
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.10.100:6443 --token t74935.2sk3buhm764uwkbi \
--discovery-token-ca-cert-hash sha256: 해시 출력
bash
set |grep KUBE
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/tigera-operator.yaml
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/custom-resources.yaml
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.2/manifests/tigera-operator.yaml
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.2/manifests/custom-resources.yaml칼리코 삭제할때는
find / -name calico
다 지우고ipvsadm --clear
/rm -rf /etc/cni/net.d
도 지움
확인watch kubectl get pods -n calico-system
mkdir -p $HOME/.kube
scp 172.16.10.100:/etc/kubernetes/admin.conf $HOME/.kube/config
cp -a $HOME/.kube/config /etc/kubernetes/admin.conf
- vi bashrc
export KUBECONFIG=/etc/kubernetes/admin.conf
쿠버네티스에서 사용할 인증정보(secret) 를 생성
docker login
cat /root/.docker/config.json생성 kubectl create secret generic master --from-file=.dockerconfigjson=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson
확인 kubeadm token list
접속
kubeadm join <192.168.0.10:6443> --token <Token 값> --discovery-token-ca-cert-hash sha256:<Hash 값>