🤓 테스트 환경
Kubernetes : 1.32v
Master Node : Oracle linux 8.8
Worker Node : Ubuntu 20.04.6 LTS
🥸 구성
- 작업 순서대로 설명합니다.
- 각 작업에서 상세 설명 및 주의 사항을 함께 전달합니다.
- 그대로 따라 하시면 큰 어려움 없이 설치 및 연결할 수 있도록 구성하였습니다.
🫡 실습 전 이해하기
0. 쿠버네티스를 설치하기 위해서는 최소 두 대의 서버가 필요합니다.
1. 실습 전 각 서버의 기본적인 운영체제에 대한 정보 확인이 필요합니다.
2. 컨테이너 런타임을 설치해야합니다.
3. kubeadm, kubelet, kubectl과 같은 쿠버네티스 클러스터 관리 도구를 설치해야 합니다.
- kubeadm은 쿠버네티스를 설치하고 관리하는 도구입니다.
- kubelet은 각 노드의 에이전트이며 노드 내 Pod와 Container 등을 관리합니다.
- kubectl은 사용자가 클러스터를 제어할 수 있도록 도와주는 명령줄 인터페이스(CLI) 도구입니다.
- 설치에 따른 운영체제 별 설치 및 설정 방법이 상이합니다.
4. CNI 플러그인을 설치합니다.
5. Master Node와 Worker Node를 연결합니다.
6. Test Pod를 띄워봅니다.
[1] 리눅스 기본 작업
🫥 각 서버의 운영 체제 확인하기
$ cat /etc/os-release
# Master Node 용 서버 출력 내용
NAME="Oracle Linux Server"
VERSION="8.8"
...
# Worker Node 용 서버 출력 내용
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
...
- Master Node로 설정할 서버 운영체제를 확인합니다.
- 리눅스 운영체제는 실행 및 연결과는 무관하지만 운영체제의 종류마다 설치 방법이 상이할 수 있으므로 맨 처음에 확인하여 숙지합니다.
오라클 리눅스(Oracle Linux)
- Red Hat Enterprise Linux(RHEL)를 기반으로 한 배포판입니다.
- RPM 패키지 관리 시스템과 yum/dnf 패키지 관리 도구를 사용합니다.
우분투(Ubuntu)
- 데비안(Debian)을 기반으로 한 배포판입니다.
- APT 패키지 관리 시스템과 DEB 패키지 포맷을 사용합니다.
🫥 각 서버의 hostname 변경하기
# hostname 변경하기
$ sudo hostnamectl set-hostname <호스트 네임>
# hostname 출력하기
$ hostname
- hostname을 변경하는 이유는 kube-api가 hostname을 기반으로 통신하기 때문입니다.
- node 간의 연결 관계를 명확하게 표시하기 위해 hostname을 지정해 주는 것이 좋습니다.
🫥 방화벽 설정


## Oracle Linux
# 기존 방화벽 리스트 확인
sudo firewall-cmd --zone=public --list-all
# 적용
sudo firewall-cmd --reload
## masternode
# kubernetes api server
sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp
# etcd server
sudo firewall-cmd --permanent --zone=public --add-port=2379-2380/tcp
# kubelet api
sudo firewall-cmd --permanent --zone=public --add-port=10250/tcp
# kube-scheduler
sudo firewall-cmd --permanent --zone=public --add-port=10259/tcp
# kube-controller-manager
sudo firewall-cmd --permanent --zone=public --add-port=10257/tcp
## worker node
# kubelet api
sudo firewall-cmd --permanent --zone=public --add-port=10250/tcp
# nodeport services
sudo firewall-cmd --permanent --zone=public --add-port=30000-32767/tcp
## masternode & worker node 둘 다
# CNI Plugin flannel
sudo firewall-cmd --permanent --zone=public --add-port=8472/udp
## Ubuntu의 경우 아래 명령어 참고
# 기존 방화벽 리스트 확인
sudo ufw status
# 포트번호 위 참고
sudo ufw allow <port>/tcp
sudo ufw allow <port>:<port>/tcp
# 적용
sudo ufw reload
- 방화벽이 있는 환경에서는 따로 포트를 개방해야 합니다.
- 리눅스 운영체제 별 방화벽 설정이 상이하므로 참고하시길 바랍니다.
- 클라우드 서비스를 사용 중이라면 가상 네트워크 설정에서 트래픽 허용을 열어주셔야 합니다.
[2] 컨테이너 런타임 설치
🫥 도커 설치
https://docs.docker.com/engine/install/
Install
Learn how to choose the best method for you to install Docker Engine. This client-server application is available on Linux, Mac, Windows, and as a static binary.
docs.docker.com
- 파드가 노드에서 실행될 수 있도록 클러스터의 각 노드에 컨테이너 런타임을 설치해야 합니다.
- 쿠버네티스는 Containerd, CRI-O 등 컨테이너 런타임을 지원합니다.
- 저는 컨테이너 런타임으로 가장 흔하게 사용되는 Docker를 설치했습니다.(사실 이미 사용 중입니다)
- 설치는 링크를 타고 들어가 각 운영체제에 맞는 설치 과정을 진행하면 됩니다.
- 참고로 Oracle linux의 경우 아래의 설치 과정을 보시면 됩니다.
- Ubuntu의 경우 아래의 설치 과정을 보시면 됩니다.
🚨 그런데, 여기서 주의할 점이 있습니다.
🫥 CRI

- 쿠버네티스는 컨테이너 런타임과 상호작용하기 위해 CRI(Container Runtime Interface)라는 표준 인터페이스를 사용합니다.
- 그런데, 쿠버네티스는 1.24 버전 이후로 Docker를 직접 지원하지 않습니다(즉, Docker 자체는 Kubernetes와 호환되지 않습니다)
- 쿠버네티스 1.24 버전 이상에서 Docker를 사용하려면 cri-dockerd라는 어댑터를 새로 추가해야만 쿠버네티스에서 도커를 런타임으로 사용할 수 있습니다.
- 그러나, 성능과 호환성에서 권장되지 않습니다.
- 따라서, contaierd나 CRI-O를 CRI로 사용하는 것이 좋습니다.
🫥 도커 엔진과 Containerd
- 저의 경우 회사와 집에서 이미 도커를 사용하고 있습니다.
- 그리고 이 글을 보고 계신 많은 분들 역시 이미 도커를 사용중일 것으로 생각됩니다.
- 도커 엔진은 내부적으로 containerd를 사용하여 컨테이너를 실행하고 관리합니다. 즉, 도커 자체가 containerd를 기반으로 동작합니다.
- 따라서 도커를 설치하면 containerd도 자동으로 설치되고 실행됩니다.
- 쿠버네티스는 기본적으로 containerd와 호환되므로, 도커 설치 후 쿠버네티스를 containerd 기반으로 사용할 수 있습니다.
📚 관련 공식 문서
Installing kubeadm
This page shows how to install the kubeadm toolbox. For information on how to create a cluster with kubeadm once you have performed this installation process, see the Creating a cluster with kubeadm page. This installation guide is for Kubernetes v1.32. If
kubernetes.io
🫥 IPv4를 포워딩하여 iptables가 브리지 된 트래픽을 보게 하기
# overlay와 br_netfilter 모듈 로드, 재부팅 시에도 설정 적용하려면 설정파일 만들어야함
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
# 적용
sudo modprobe overlay
sudo modprobe br_netfilter
# 적용 확인
sudo lsmod | grep br_netfilter
# 출력
br_netfilter xxxxx 0
# sysctl 파라미터 설정, 재부팅 시에도 설정 적용하려면 설정파일 만들어야함
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
# 재부팅하지 않고 sysctl 파라미터 적용하기
sudo sysctl --system
- 이 작업은 Kubernetes 클러스터의 네트워크 기능이 제대로 동작하도록 필요한 커널 모듈을 로드하고, 커널 파라미터를 설정하여 네트워크 필터링 및 IP 포워딩 기능을 활성화하는 설정입니다.
overlay와 br_netfilter 모듈 로드
- overlay: Kubernetes에서 컨테이너 네트워킹을 위한 네트워크 드라이버입니다.
- br_netfilter: 브리지 네트워크에서 iptables 필터링을 활성화하기 위해 필요한 모듈입니다.
- 이 두 모듈을 /etc/modules-load.d/k8s.conf 파일에 추가하고 modprobe 명령어로 로드하여 Kubernetes의 네트워킹 기능이 정상적으로 작동하게 만듭니다.
sysctl 파라미터 설정
- net.bridge.bridge-nf-call-iptables: Kubernetes 네트워킹에서 iptables 규칙을 적용하기 위해 설정합니다.
- net.bridge.bridge-nf-call-ip6tables: IPv6의 경우도 동일한 네트워크 필터링을 적용하도록 설정합니다.
- net.ipv4.ip_forward: 컨테이너 간 통신을 위해 IP 포워딩을 활성화합니다.
sysctl --system
- 위에서 설정한 커널 파라미터를 즉시 적용하기 위해 sysctl --system 명령어를 실행합니다. 이 명령어는 커널 파라미터를 재부팅 없이 즉시 적용됩니다.
📚 관련 공식 문서
https://kubernetes.io/ko/docs/setup/production-environment/container-runtimes//#필수-요소들-설치-및-구성하기
컨테이너 런타임
참고: Dockershim은 쿠버네티스 릴리스 1.24부터 쿠버네티스 프로젝트에서 제거되었다. 더 자세한 내용은 Dockershim 제거 FAQ를 참고한다. 파드가 노드에서 실행될 수 있도록 클러스터의 각 노드에 컨
kubernetes.io
🫥 docker daemon.json
$ sudo vi /etc/docker/daemon.json
# 아래 내용 저장
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
# 도커 재시작
$ sudo systemctl restart docker
# 확인
$ sudo docker info
Storage Driver: overlay2
...
Cgroup Driver: systemd
- containerd는 Docker의 런타임 라이브러리로 동작하기 때문에 Docker 설정을 수정하여 Cgroup Driver를 systemd로 변경하면 Kubernetes 환경에서의 호환성과 안정성을 보장할 수 있습니다.
- systemd는 Kubernetes 1.20 이후 권장되는 보다 안정적이고 일관된 Cgroup Driver입니다.
- 현재 설정 상태를 확인하기 위해 sudo docker info 명령어를 실행하면, 변경 전에는 Cgroup Driver: cgroupfs로 표시됩니다.
- 이를 systemd로 변경하려면 Docker의 설정 파일을 수정해야 하며, 초기에는 해당 설정 파일(`/etc/docker/daemon.json`)이 존재하지 않을 수 있습니다.
- 따라서, 이 파일을 새로 생성하거나 편집하여 아래와 같이 설정을 추가합니다.
🫥 containerd systemd cgroup 드라이버 구성
$ containerd config default | sudo tee /etc/containerd/config.toml
$ sudo vi /etc/containerd/config.toml
# 찾아서 flase -> true로 변경
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
# 재시작
$ sudo systemctl restart containerd
- 이 작업은 containerd가 systemd를 cgroup driver로 사용하도록 명시하는 것입니다.
- 최초의 기본값으로 진행하면 클러스터 설치 후 문제가 발생할 가능성이 있기 때문에 위 명령어를 통해 초기 설정을 하고 필요한 부분만 바꿉니다.
[3] 리눅스 종류별 설정
‼️ 시간이 지나 공식문서가 업데이트가 되면 설치 방법이 달라질 수 있으므로 반드시 공식문서를 확인하시길 바랍니다.
🧤 Debian 기반(Ubuntu 등)
$ sudo apt-get install -y apt-transport-https ca-certificates curl gpg
- 이 명령어는 apt를 통해 HTTPS를 사용하여 패키지를 다운로드하고, 필요한 인증서와 도구를 설치합니다.
- apt-transport-https: HTTPS 프로토콜을 통해 APT 패키지를 다운로드할 수 있게 해 줍니다.
- ca-certificates: 안전한 HTTPS 연결을 위해 필요한 인증서들을 설치합니다.
- curl: URL을 통해 데이터를 전송하는 도구입니다.
- gpg: GPG 키 관리를 위한 도구로, 패키지의 서명을 확인하는 데 사용됩니다.
🫥 Kubernetes 저장소의 GPG 키 다운로드
## Ubuntu 22.04 이전 버전에는 /etc/apt/keyrings가 존재하지 않기 때문에 직접 생성하고 진행해야한다.
# sudo mkdir -p -m 755 /etc/apt/keyrings
$ curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
- Kubernetes 저장소의 GPG 키를 다운로드하여 시스템에 저장합니다.
🫥 Kubernetes의 APT 패키지 저장소 추가
$ echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
- Kubernetes의 APT 패키지 저장소를 시스템에 추가합니다.
- 이 저장소에서 Kubernetes 관련 패키지를 다운로드할 수 있도록 /etc/apt/sources.list.d/ 디렉터리에 kubernetes.list 파일을 생성합니다.
🫥 kubeadm, kubelet, kubectl 설치
# 리눅스 패키지를 업데이트 합니다.
$ sudo apt-get update
# Kubernetes 클러스터를 구성하기 위해 필요한 3가지 주요 패키지인 kubelet, kubeadm, kubectl을 설치합니다.
$ sudo apt-get install -y kubelet kubeadm kubectl
# kubelet, kubeadm, kubectl 패키지들을 자동 업데이트에서 제외시켜, 업데이트나 업그레이드 중에 해당 패키지가 변경되지 않도록 합니다.
$ sudo apt-mark hold kubelet kubeadm kubectl
- kubelet
- 클러스터의 각 노드에서 실행되는 Kubernetes의 주요 컴포넌트입니다.
- Kubernetes의 Pod을 실행하고 관리합니다.
- kubeadm
- Kubernetes 클러스터를 초기화하거나 설정하는 도구입니다.
- 클러스터의 Control Plane 구성, 노드 추가 등을 쉽게 처리할 수 있습니다.
- kubectl
- Kubernetes를 관리하기 위한 CLI 도구입니다.
- Kubernetes 클러스터와 상호작용하며 리소스 관리, 상태 확인 등을 수행합니다.
🫥 kubelet 활성화와 설치 확인으로 넘어가세요.
⛑️ RedHat 기반(Oracle Linux, CentOS 등)
🫥 SELinux 비활성화
$ sudo setenforce 0
$ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
SELinux와 컨테이너 런타임의 충돌
- SELinux(Security-Enhanced Linux)는 파일, 프로세스, 네트워크 등에 대해 강력한 접근 제어를 제공하는 보안 메커니즘입니다.
- 쿠버네티스에서 컨테이너 런타임은 일반적으로 컨테이너 내부와 외부 간의 리소스(파일 시스템, 네트워크 등)를 공유합니다.
- SELinux가 활성화되어 있으면, 컨테이너 런타임이 이러한 공유 리소스에 접근하려 할 때 권한 거부 오류가 발생할 수 있습니다.
- Pod에서 공유 볼륨을 사용하는 경우 SELinux의 보안 컨텍스트가 충돌하여 파일 시스템에 접근하지 못하는 문제가 발생할 수 있습니다.
- 네트워크 플러그인(CNI)이나 kubelet이 SELinux 정책에 의해 차단될 가능성도 있습니다.
🫥 스왑 비활성화
## 일시적 비활성화하기(이건 재부팅 시 초기화되므로 아래 자동 비활성화를 사용하자)
# 스왑 상태 확인
$ free -h
# 스왑 일시적 비활성화
$ sudo swapoff -a
# 스왑 상태 재확인
$ free -h
# 출력
Swap: 0B 0B 0B
######################################################################
## 자동 비활성화
# 부팅 시 자동으로 비활성화하는 것이 좋다.
$ sudo vi /etc/fstab
# 주석처리 하기
# /.swapfile none swap sw,comment=cloudconfig 0 0
# 시스템 재부팅
$ sudo reboot
# 스왑 상태 재확인
$ free -h
# 출력
Swap: 0B 0B 0B
- kubelet은 기본적으로 노드에서 스왑 메모리가 활성화되어 있는 경우 실행을 거부하거나 오류를 발생시킬 수 있습니다.
- 스왑(Swap)이란?
- 스왑은 물리적 메모리(RAM)가 부족할 때 디스크의 특정 공간을 임시로 사용하여 메모리를 보조하는 기능입니다.
- 하지만 Kubernetes는 안정성과 성능 이유로 스왑 사용을 허용하지 않습니다. 스왑이 활성화되어 있으면 Kubernetes 클러스터 초기화 시 오류가 발생합니다.
📚 관련 공식 문서
Installing kubeadm
This page shows how to install the kubeadm toolbox. For information on how to create a cluster with kubeadm once you have performed this installation process, see the Creating a cluster with kubeadm page. This installation guide is for Kubernetes v1.32. If
kubernetes.io
🫥 kubeadm, kubelet, kubectl 설치
Kubernetes Repository 설정
$ cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
- Kubernetes의 공식 패키지 저장소를 설정합니다.
- Kubernetes 설치와 관련된 패키지를 시스템에서 쉽게 관리할 수 있도록 저장소를 등록하는 단계입니다.
- exclude: 특정 패키지가 기본적으로 설치되지 않도록 제외합니다.(여기선 kubelet, kubeadm, kubectl 등 제외)
- exclude를 설정하는 이유는
- 저장소 충돌 방지: 의도하지 않은 저장소나 오래된 패키지에서 설치되는 것을 방지합니다.
- 업데이트 통제: 자동 업데이트로 인해 호환성 문제가 발생하지 않도록 예방합니다.
- 수동 관리 강제: 명시적으로만 설치/업데이트하도록 관리의 명확성을 제공합니다.
Kubernetes 구성 요소 설치
# 리눅스 패키지를 업데이트합니다.
$ sudo dnf update
$ sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
- 이 단계에서 Kubernetes 클러스터를 구성하는 데 필요한 핵심 구성 요소들을 설치합니다.
- kubelet
- 클러스터의 각 노드에서 실행되는 Kubernetes의 주요 컴포넌트입니다.
- Kubernetes의 Pod을 실행하고 관리합니다.
- kubeadm
- Kubernetes 클러스터를 초기화하거나 설정하는 도구입니다.
- 클러스터의 Control Plane 구성, 노드 추가 등을 쉽게 처리할 수 있습니다.
- kubectl
- Kubernetes를 관리하기 위한 CLI 도구입니다.
- Kubernetes 클러스터와 상호작용하며 리소스 관리, 상태 확인 등을 수행합니다.
- --disableexcludes=kubernetes
- exclude 된 패키지를 강제로 설치할 수 있도록 설정합니다.
- 특정 저장소(Kubernetes 공식 저장소)에서만 패키지를 가져오도록 강제하며, 관리자가 의도적으로 작업을 수행했음을 보장합니다.
[4] kubelet 활성화와 설치 확인
🫥 kubelet 활성화
$ sudo systemctl enable --now kubelet
- kubelet 서비스를 부팅 시 자동 시작되도록 설정하고, 즉시 시작하도록 하는 명령어입니다.
kubelet 확인
$ sudo systemctl status kubelet
- 이 명령어를 실행하면 kubelet이 activiting 상태임을 확인할 수 있습니다.
- 아직 kubeadm을 초기화하지 않아 계속 실행 시도 중인 상태인 것입니다.
[5] master, worker node 연결
🫥 master node
kubeadm 초기화(CNI 플러그인에 따른 옵션)
# flannel
$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
# 출력
$ kubeadm join ***.***.***.***:6443 --token <토큰값>
# 아래 명령어로 리셋하고 다시할 수도 있음
$ sudo kubeadm reset
- 10.244.0.0/16은 Flannel CNI(Container Network Interface) 플러그인을 사용할 때 일반적으로 권장되는 기본 값입니다.
- Flannel은 가장 기본적인 CNI 플러그인으로 알려져 있습니다.
- CNI 플러그인은 Kubernetes 클러스터 내에서 Pod 간의 네트워크를 설정하고, 이 CIDR 범위는 각 Pod에 할당될 IP 주소 범위를 정의합니다.
- 맨 마지막에 worker node에 입력하여 클러스터에 연결할 수 있는 join 명령문이 나오므로 이를 복사해 둡니다.
kubectl 명령어를 사용할 수 있게 변경
$ mkdir -p $HOME/.kube
# reset 후 재입력하는 경우에는 yes로 입력하면 됨
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
## k8s 치트시트
# 탭으로 자동 검색 도와줌 예를 들어 -n kube-system을 k만 입력하고 tab하면 자동으로 채워짐
$ echo "source <(kubectl completion bash)" >> ~/.bashrc
# kubectl 대신 k만 입력해도 됨
$ echo "alias k=kubectl" >> ~/.bashrc
$ echo "complete -o default -F __start_kubectl k" >> ~/.bashrc
# 적용
$ source ~/.bashrc
# 위 명령을 수행한 후 파드를 조회해보자.
$ kubectl get po -A or k get po -A
- 성공적으로 설치되었다면 위 명령어를 입력한 후 파드를 조회시 정상적으로 조회될 것입니다.
$ k get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-xxxxxxxxx-xxxxxx 0/1 Pending 0 4m19s
kube-system coredns-xxxxxxxxx-xxxxxx 0/1 Pending 0 4m19s
kube-system etcd-host-name 1/1 Running 0 4m26s
kube-system kube-apiserver-host-name 1/1 Running 0 4m26s
kube-system kube-controller-manager-host-name 1/1 Running 0 4m26s
kube-system kube-proxy-xxxxx 1/1 Running 0 4m19s
kube-system kube-scheduler-host-name 1/1 Running 0 4m26s
- coredns의 경우 CNI 플러그인을 설치해야 Pending에서 벗어날 수 있습니다.
CNI 플러그인(flannel) 설치
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- flannel은 기본 기능에 충실한 가장 간단한 구조입니다.
🫥 worker node
masternode와 연결
# 마스터 노드에서 kubeadm init을 통해 나온 join 명령문을 복사해서 실행
kubeadm join ***.***.***.***:6443 --token <토큰값>
- 이때 연결이 되지 않는다면 방화벽을, 클라우드의 경우 가상 네트워크 설정까지 쿠버네티스 관련 포트가 열려있는지 확인해 봅니다.
masternode에서 연결 확인
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane 2m11s v1.32.0
worker Ready <none> 20s v1.32.0
[6] testPod 띄워보기
$ kubectl run testpod --image=nginx
pod/testpod created
$ kubectl get po
NAME READY STATUS RESTARTS AGE
testpod 1/1 Running 0 8s
참고
https://github.com/kubernetes/website/commit/f73647531dcdade2327412253a5f839781d57897/
https://diamond-goose.tistory.com/65
https://nginxstore.com/blog/kubernetes/쿠버네티스-설치-방법-vm-환경-튜토리얼/#2-4
https://yes-admit.tistory.com/123
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
'[DevOps] > Kubernetes' 카테고리의 다른 글
| Docker image -> Containerd image로 변환하는 방법 (2) | 2025.01.07 |
|---|---|
| 외부에서 HTTP로 Kubernetes API 요청하기(1.24v 이상) (0) | 2024.12.30 |
| CKA 기출 문제 복기 및 접근법 정리[24.11.24 응시] (0) | 2024.11.27 |
| CKA 시험 접수 -> 응시 -> 합격 후기(1트 합격) (9) | 2024.11.26 |
| kubernetes - Node Update(drain, cordon, uncordon) (0) | 2024.01.20 |