일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- pptpdf로변환
- (user)terminal
- pptxpdf
- 가시다스터디
- awsworkshop
- macterminal(user)
- 테라폼스터디
- 테라폼상태
- cidrhost로EC2의ENI에10개의ip를 장착
- aws
- t101
- pythonpptpdf
- 깃허브기초
- mac(user)
- Azure
- data개념
- 테라폼조건식
- 테라폼함수
- azureresource
- terraform_data
- azureterraform
- terraform
- mac user
- pptpdf
- githubbasic
- awsglue
- (user)없애기
- terraformazure
- t103
- 테라폼조건문
- Today
- Total
fullmoon's bright IT blog
[PKOS] AWS kOps 설치 및 기본 사용 본문
안녕하세요 가시다님의 스터디를 또 시작한 고인물 휘영청입니다 :)
요새 최근에 쿠버네티스 실무에 들어가게되었는데 갈수록어렵습니다
역시 이럴때는 가시다님의 스터디!
kOps 란?
kOps - Kubernetes Operations
Kubernetes 클러스터를 구성하는 방법 중에서 클라우드 환경에서 사용하는 kOps 입니다.
Kubernetes 생성 및 관리를 쉽게 하도록 도와주는 오픈소스 툴이며 Kubernetes 클러스터를 간단한 CLI 명령을 통해 생성, 관리, 업그레이드, 삭제할 수 있도록 지원합니다.
가시다님 스터디로 또 알게되는 AWS kOps !
[기능]
- Automates the provisioning of Highly Available Kubernetes clusters
- Built on a state-sync model for dry-runs and automatic idempotency
- Ability to generate Terraform
- Supports zero-config managed kubernetes add-ons
- Command line autocompletion
- YAML Manifest Based API Configuration
- Templating and dry-run modes for creating Manifests
- Choose from most popular CNI Networking providers out-of-the-box
- Multi-architecture ready with ARM64 support
- Capability to add containers, as hooks, and files to nodes via a cluster manifest
설치가이드 : AWS
다양한 시나리오가 있어서 필요하신 부분을 사용하셔도 됩니다.
https://kops.sigs.k8s.io/getting_started/aws/
사전 준비 : kOps와 kubectl이 설치되어 있는지 확인하기.
저는 가시다님이 주신 Cloudformation 스택으로 배포합니다.
[실습구성도]
- k8s 를 배포할 수 있는 kops 가 설치된 ec2 를 cloudformation 에 의해서 생성됨
- kops 로 k8s 클러스터를 생성 : k8s 설정 파일을 s3 에 저장
- 버전 : k8s v1.24.10, OS Ubuntu 20.04 LTS
- kops-ec2 역할 : kOps 배포 수행, kubectl 명령 실행 등
- 마스터 노드와 워커 노드는 EC2 Auto Scaling Group(=ASG) 설정으로 구성됨
자동으로 kOps 설치된 kops-ec2를 생성이 되니 만들어질 때까지 대기!
파라미터 값 설정
KeyName - EC2 key pair
SgingressSshCidr - 인스턴스랑 통신하는데 사용하는 Ip주소 범위
배포를 기다린 후에 확인을 해봐야겠죠?
kOps-ec2 에 SSH 로그인 후 실행합니다 :)
1) 자격구성하기
[root@kops-ec2 ~]# aws ec2 describe-instances
Unable to locate credentials. You can configure credentials by running "aws configure".
# IAM User 자격 구성 : 실습 편리를 위해 administrator 권한을 가진 IAM User 의 자격 증명 입력
[root@kops-ec2 ~]# aws configure
AWS Access Key ID [None]: -
AWS Secret Access Key [None]: -
Default region name [None]: ap-northeast-2
Default output format [None]: json
# 자격 구성 적용 확인 : 노드 IP 확인
[root@kops-ec2 ~]# aws ec2 describe-instances
2)배포 시 참고할 정보를 환경 변수에 저장
편하게 저장해놓는게 굿!
# 배포 시 참고할 정보를 환경 변수에 저장
## export NAME=<자신의 퍼블릭 호스팅 메인 주소>
## export KOPS_STATE_STORE=s3://(위에서 생성한 자신의 버킷 이름)
export AWS_PAGER=""
export REGION=ap-northeast-2
export KOPS_CLUSTER_NAME=fullmoon.r-e.kr
export KOPS_STATE_STORE=s3://fullmoon-k8s-s3
echo 'export AWS_PAGER=""' >>~/.bashrc
echo 'export REGION=ap-northeast-2' >>~/.bashrc
echo 'export KOPS_CLUSTER_NAME=fullmoon.r-e.kr' >>~/.bashrc
echo 'export KOPS_STATE_STORE=s3://fullmoon-k8s-s3' >>~/.bashrc
3) kOps를 통해서 k8s를 생성 , 후 k8s 생성을 모니터링
# 옵션 [터미널1] EC2 생성 모니터링
while true; do **aws ec2 describe-instances** --query "Reservations[*].Instances[*].{PublicIPAdd:PublicIpAddress,InstanceName:Tags[?Key=='Name']|[0].Value,Status:State.Name}" --filters Name=instance-state-name,Values=running --output text ; echo "------------------------------" ; sleep 1; done
4)k8s 클러스터 배포
kops create cluster --zones="$REGION"a,"$REGION"c --networking amazonvpc --cloud aws \
--master-size t3.medium --node-size t3.medium --node-count=2 --network-cidr 172.30.0.0/16 \
--ssh-public-key ~/.ssh/id_rsa.pub --name=$KOPS_CLUSTER_NAME --kubernetes-version "1.24.10" -y
5) 생성된 kOps 인스턴스 생성 확인 및 kubernets node 생성 확인
'Cloud > k8s' 카테고리의 다른 글
[CKA][쿠버네티스] CKA (눈물의) 합격 후기..MacOS PSI 에러 + 시험유형 공유 (4) | 2023.04.08 |
---|---|
[DOIK]Cloud Native PostgreSQL 오퍼레이터 정리 및 도전과제 (0) | 2022.06.26 |
Kubenetes Operator Study - Concept for newbie (1) Controller and Operator (0) | 2022.06.10 |