Kubernetes 1.17 설치
in Kubernetes
Kubernetes 1.17을 Ubuntu 단일 서버에 설치합니다.
- swap off 끄기
- iptables 설치
- kubeadm, kubelet, kubectl 설치
- kubeadm 을 사용해서 설치
- 설정 파일 생성
- Cilium 네트워크 애드온 설치
- taint 해제
- 확인
- alias 및 자동완성 지정
- nvidia plugin (옵션)
- 참고
swap off 끄기
sudo swapoff -a
재부팅 시 swap 활성화를 막기 위해 /etc/fstab
에 있는 swap 부분을 주석 처리 합니다.
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda5 during installation
UUID=97adfdfc-9063-4250-80b5-877af39fae57 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=01F4-2255 /boot/efi vfat umask=0077 0 1
# /swapfile none swap sw 0 0
iptables 설치
iptables 를 설치합니다.
sudo apt-get install -y iptables arptables ebtables
kubeadm, kubelet, kubectl 설치
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
$ cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet=1.17* kubeadm=1.17* kubectl=1.17*
kubeadm 을 사용해서 설치
sudo kubeadm init --pod-network-cidr=10.217.0.0/16
다른 network addon 일 경우 --pod-network-cidr
가 달라질 수 있습니다.
설정 파일 생성
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Cilium 네트워크 애드온 설치
kubectl create -f https://raw.githubusercontent.com/cilium/cilium/v1.6/install/kubernetes/quick-install.yaml
taint 해제
디폴트로 마스터는 노드 격리가 되어 있는데, 여기서는 단일 노드이기 때문에 taint 를 해제합니다.
kubectl taint nodes --all node-role.kubernetes.io/master-
확인
컨트롤 플레인 컴포넌트들이 모두 Running
상태인지 확인합니다.
kubectl get pods -n kube-system
alias 및 자동완성 지정
bashrc 혹은 zshrc 에 아래와 같이 추가합니다.
alias k='kubectl'
source <(k completion zsh)
nvidia plugin (옵션)
GPU 를 사용하려는 경우, nvidia plugin 을 설치합니다.
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.9.0/nvidia-device-plugin.yml
참고
- https://www.kangwoo.kr/2020/02/17/pc%EC%97%90-kubeflow-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-2%EB%B6%80-kubernetes-nvidia-device-plugin-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0/