Kops를 통해 쿠버네이트 클러스터를 설정합니다.
리눅스에 kubectl 설치하기
https://kubernetes.io/ko/docs/tasks/tools/install-kubectl-linux/
$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
$ curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
$ echo "$(<kubectl.sha256) kubectl" | sha256sum --check
$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
$ sudo chmod +x /usr/local/bin/kubectl
- 최신 릴리즈를 다운로드합니다.
- 바이너리를 다운로드합니다. kubectl 바이너리를 체크섬 파일을 통해 검증합니다.
- kubectl을 설치합니다.
- 권한을 줍니다.
클러스터 만들기 전에 ssh 키 생성하기
$ ssh-keygen -f .ssh/id_rsa
$ cat .ssh/id_rsa.pub
- 생성한 ssh키로 클러스터에 로그인합니다.
- ssh-keygen은 새 키를 생성합니다.
- {id_rsa.pub}는 공개 키이며 인스턴스에 업로드됩니다.
- {id_rsa}는 개인 키이며 개인키를 이용해 인스턴스에 로그인할 수 있습니다.
$ sudo mv /usr/local/bin/kops-linux-amd64 /usr/local/bin/kops
$ kops create cluster --name=soohey.tk --state=s3://kops-state3245 --zones=ap-northeast-2a --node-count=2 --nnode=size=t2.micro --master-size=t2.micro --dns-zone=soohey.tk
$ kops update cluster soohey.tk --yes --admin --state=s3://kops-state3245
kops는 한 개의 마스터, 두 개의 노드를 가진 클러스터를 생성하고 이름을 지정합니다.
name은 이름, state는 버킷이름, zones는 aws 리전을 뜻합니다.
kops update cluster하여 클러스터를 시작합니다.
$ cat ~/.kube/config
//새 클러스터에 로그인할 때 필요한 인증서와 암호입니다.
https://api.soohey.tk 가 우리가 만든 서버입니다.
$ kubectl get node
//노드입니다.
kops를 사용하는 쿠버네티스 클러스터가 작동하는지 테스트합니다.
$ kubectl run hello-minikube --image=k8s.gcr.io/echoserver1.4 --port=8080
// hello-minikube 배포 생성하기
$ kubectl expose deployment hello-minikube --type=NodePort
// service hello-minikube exposed
$ kubectl get services
// hello-minikube 서비스 보기
kubectl expose로 외부에서 접근할 수 있도록 서비스를 노출시킵니다.
NodePort는 모든 노드에 있는 포트를 노출해 서비스에 연결시킵니다. 하지만 마스터 노드에는 연결할 수 없습니다.
EC2로 이동하여 running중인 인스턴스를 확인합니다.
서비스에 노출된 port를 인바운드 규칙 추가하기
source는 0.0.0.0/0 또는 myIP를 위해서만 열 수 있습니다.
$ kops delete cluster soohey.tk --state=s3://kops-state3245 --yes
클러스터를 삭제합니다.
'DevOps > kubernete' 카테고리의 다른 글
Network error:connection refused (0) | 2022.05.24 |
---|---|
[kubernete] Kops 설치 및 AWS 준비하기 (0) | 2022.05.22 |
kubernete 시작하기 (0) | 2022.05.22 |