이어서 쿠버네티스를 설치해본다.
도커가 이미 설치된 상황이어야 진행된다.
1. sudo usermod -aG docker your-user 를 실행 ( your-user 에 계정을 넣어준다 )
2. kubeadm, kubelet, kubectl를 설치해야한다. 이거는 마스터노드, 워커노드 등 모든 노드에서 실행해줘야 한다.
이 과정은 노드가 늘어날수록 매우 귀찮아서 ansible로 자동화하는것도 나중에 해본다)
- kubeadm: 클러스터 시작을 위한 커맨드 툴
- kubelet: 클러스터 모든 장비에서 실행되는 컴포넌트. 파드나 컨테이너를 실행하는 등의 여러 작업을 수행하는것에 필요
- kubectl: 클러스터와 통신하기 위한 커먼트 툴입니다. 마스터 노드의 api-server와 통신
3.cat < /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
4. setenforce 0
5. sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
6. yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
7. systemctl enable --now kubelet
(3~7은 모든 노드에서 실행)
8. centos 7에서 iptable에 있던 오류를 해결하기 위해 아래를 입력해준다.
cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF
9. sysctl --system
10. modprobe br_netfilter
11. systemctl stop firewalld
12.systemctl disable firewalld
여기까지 정상적으로 되었으면 kubelet --version을 했을때 kubernets 버전이 나온다.
이제 마스터 노드를 설정한다.
13. kubeadm init
실행하고 맨 마지막에 나오는 kubeadm join --token 을 잘 메모
14. kubectl 권한 활성화
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
14. 본격적인 통신을 하기 위해서는 Pod Network Add-On을 설치해야 한다.
나는 calico를 설치한다.
15. kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
16.일단 이 시점에서 kubeclt get node하면 마스터노드가 뜨고, kubectl get pod -n kube-system하면 calico등 여러 pod들이 생성되었다.
17. 이제 아까 메모했떤 token을 가지고 나머지 node들에 접속해서 실행한다
그러면 정상적으로 연결이 되고 Ready가 된다.
'쿠버네티스' 카테고리의 다른 글
쿠버네티스의 기본 구성 (0) | 2022.07.26 |
---|---|
1. 쿠버네티스 설치 ( rancher 이용 ) (0) | 2022.07.19 |
[docker] 내가 헷갈리는 docker 정리 (0) | 2021.05.03 |
쿠버네티스 설치 가이드!! (0) | 2020.08.22 |
클라우드에 docker 환경 셋팅하기_1 (0) | 2020.06.13 |