Kubeadm
Kubespray (Kubeadm + Ansible)
Kops
Docker Desktop - Kubernetes
minikube
1.22.8
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
apt-cache madison kubeadm | grep 1.22.8
apt-cache madison kubelet | grep 1.22.8
apt-cache madison kubectl | grep 1.22.8
sudo apt-get install kubeadm=1.22.8-00 kubelet=1.22.8-00 kubectl=1.22.8-00 -y
sudo apt-mark hold kubelet kubeadm kubectl
docker info | grep 'Cgroup Driver'
Cgroup Driver: cgroupfs
/etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
sudo systemctl restart docker
docker info | grep 'Cgroup Driver'
Cgroup Driver: systemd
sudo systemctl daemon-reload && sudo systemctl restart kubelet
kubeadm init
실패 시
sudo kubeadm reset
sudo kubeadm init --control-plane-endpoint 192.168.100.100 --pod-network-cidr 172.16.0.0/16 --apiserver-advertise-address 192.168.100.100
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker **NotReady** control-plane,master 14m v1.22.8
kubectl create -f https://projectcalico.docs.tigera.io/manifests/tigera-operator.yaml
curl https://projectcalico.docs.tigera.io/manifests/custom-resources.yaml -O
custom-resources.yaml
...
cidr: 172.16.0.0/16
...
kubectl create -f custom-resources.yaml
kubectl get pods -A
NAMESPACE NAME ...
calico-apiserver calico-apiserver-c9565f67b-2p29k ...
calico-apiserver calico-apiserver-c9565f67b-slthl ...
calico-system calico-kube-controllers-5d74cd74bc-sg7dn ...
calico-system calico-node-tgxks ...
calico-system calico-typha-7447fdc844-txrdb ...
kube-system coredns-78fcd69978-4ztkq ...
kube-system coredns-78fcd69978-jpwxx ...
kube-system etcd-docker ...
kube-system kube-apiserver-docker ...
kube-system kube-controller-manager-docker ...
kube-system kube-proxy-5st98 ...
kube-system kube-scheduler-docker ...
tigera-operator tigera-operator-7cf4df8fc7-kx87z ...
kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker **Ready** control-plane,master 30m v1.22.8
kubectl taint node docker node-role.kubernetes.io/master-
kubectl create deployment myweb --image=ghcr.io/c1t1d0s7/go-myweb
kubectl get deployments,replicasets,pods
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/myweb 1/1 1 1 4m40s
NAME DESIRED CURRENT READY AGE
replicaset.apps/myweb-97dbf5749 1 1 1 4m40s
NAME READY STATUS RESTARTS AGE
pod/myweb-97dbf5749-8tq2l 1/1 **Running** 0 4m40s
kubectl expose deployment myweb --port=80 --protocol=TCP --target-port=8080 --name myweb-svc --type=NodePort
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 40m
myweb-svc NodePort 10.96.114.201 <none> 80:**31891**/TCP 5s
curl 192.168.100.100:**31891**
Hello World!
myweb-97dbf5749-8tq2l
kubectl scale deployment myweb --replicas=3
kubectl get pods
myweb-97dbf5749-8tq2l 1/1 Running 0 12m
myweb-97dbf5749-9bm8l 1/1 Running 0 3m13s
myweb-97dbf5749-n29m2 1/1 Running 0 3m13s
curl 192.168.100.100:**31891**
kubectl delete service myweb-svc
kubectl delete deployment myweb
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
docker info | grep 'Cgroup Driver'
Cgroup Driver: cgroupfs
/etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
sudo systemctl restart docker
docker info | grep 'Cgroup Driver'
Cgroup Driver: systemd
sudo systemctl daemon-reload && sudo systemctl restart kubelet
sudo usermod -aG docker vagrant
재접속
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install kubeadm=1.22.8-00 kubelet=1.22.8-00 kubectl=1.22.8-00 -y
sudo kubeadm join --token 69bz9a.jd5a3qmzlhb66iua 192.168.100.100:6443 \
--discovery-token-ca-cert-hash sha256:73f2901d915c6fe5a5a37a6c1c4c1aa73e36da2c3619e36c16d2387a856bc840