728x90
반응형
Overview
가시다님이 진행하시는 쿠버네티스 실무 실습 스터디에 참여하게 되었다.
일정은 아래와 같다.
스터디 일정과 커리큘럼 : 1월 8일 ~ 2월 26일 (총 7주 진행) , 매주 일요일 (저녁 8시~10시)
사전 과제내용
- AWS Free tier 계정 생성 : O
- IAM User 생성 : somaz (AdministratorAccess)
- AWS Route53 퍼블릭 호스팅 영역(도메인) 구입 : somaz.link
1주차 과제 내용
[과제1]
각자 설치한 AWS kOps 클러스터의 정보를 올려주세요 : kops get cluster, kops get instances
[root@kops-ec2 ~]# kops get cluster
NAME CLOUD ZONES
somaz.link aws ap-northeast-2a,ap-northeast-2c
[root@kops-ec2 ~]# kops get instances
ID NODE-NAME STATUS ROLES STATE INTERNAL-IPINSTANCE-GROUP MACHINE-TYPE
i-01963115b95429b3f i-01963115b95429b3f UpToDate node 172.30.37.255 nodes-ap-northeast-2a.somaz.link t3.medium
i-02a16fd3436a7220a i-02a16fd3436a7220a UpToDate master 172.30.36.8 master-ap-northeast-2a.masters.somaz.link t3.medium
i-0bf5cdb9fd690d4ec i-0bf5cdb9fd690d4ec UpToDate node 172.30.75.103 nodes-ap-northeast-2c.somaz.link t3.medium
[과제2]
Helm 으로 워드프레스를 배포하고 관리페이지에 접속해서 글 1개 작성해주시고 스크린샷을 올려주세요
(⎈|somaz:wordpress) [root@kops-ec2 ~]# kubectl get svc myblog-wordpress -o jsonpath={.status.loadBalancer.ingress[0].hostname} | awk '{ print "Wordpress URL = http://"$1"/admin" }'
Wordpress URL = http://a3eea2a80acb242508e2983803c5ad6d-1172598214.ap-northeast-2.elb.amazonaws.com/admin
(⎈|somaz:wordpress) [root@kops-ec2 ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP
PORT(S) AGE
myblog-mariadb ClusterIP 100.71.134.153 <none>
3306/TCP 13m
myblog-wordpress LoadBalancer 100.71.14.32 a3eea2a80acb242508e2983803c5ad6d-1172598214.ap-northeast-2.elb.amazonaws.com 80:30812/TCP,443:31508/TCP 13m
[과제3]
워커 노드 증가(ASG = Auto Scaling Group 활용)
# 인스턴스 그룹 정보 확인
(⎈|somaz:wordpress) [root@kops-ec2 ~]# kops get ig
NAME ROLE MACHINETYPE MIN MAX ZONES
master-ap-northeast-2a Master t3.medium 1 1 ap-northeast-2a
nodes-ap-northeast-2a Node t3.medium 1 1 ap-northeast-2a
nodes-ap-northeast-2c Node t3.medium 1 1 ap-northeast-2c
# 편집
kops edit ig nodes-ap-northeast-2a
...
apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
creationTimestamp: "2023-01-08T12:03:20Z"
labels:
kops.k8s.io/cluster: somaz.link
name: nodes-ap-northeast-2a
spec:
image: 099720109477/ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20221206
instanceMetadata:
httpPutResponseHopLimit: 1
httpTokens: required
machineType: t3.medium
maxSize: 3
minSize: 2
role: Node
subnets:
- ap-northeast-2a
~
# 적용
(⎈|somaz:wordpress) [root@kops-ec2 ~]# kops update cluster --yes
W0108 14:20:18.539113 15639 builder.go:231] failed to digest image "602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon-k8s-cni:v1.11.4"
W0108 14:20:19.041120 15639 builder.go:231] failed to digest image "602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon-k8s-cni-init:v1.11.4"
I0108 14:20:23.104096 15639 executor.go:111] Tasks: 0 done / 103 total; 48 can run
I0108 14:20:24.049771 15639 executor.go:111] Tasks: 48 done / 103 total; 21 can run
I0108 14:20:24.935428 15639 executor.go:111] Tasks: 69 done / 103 total; 28 can run
I0108 14:20:25.258914 15639 executor.go:111] Tasks: 97 done / 103 total; 3 can run
I0108 14:20:25.490123 15639 executor.go:111] Tasks: 100 done / 103 total; 3 can run
I0108 14:20:25.575160 15639 executor.go:111] Tasks: 103 done / 103 total; 0 can run
I0108 14:20:26.318546 15639 dns.go:238] Pre-creating DNS records
I0108 14:20:26.377994 15639 update_cluster.go:326] Exporting kubeconfig for cluster
kOps has set your kubectl context to somaz.link
W0108 14:20:26.392368 15639 update_cluster.go:350] Exported kubeconfig with no user authentication; use --admin, --user or --auth-plugin flags with `kops export kubeconfig`
Cluster changes have been applied to the cloud.
Changes may require instances to restart: kops rolling-update cluster
(⎈|somaz:wordpress) [root@kops-ec2 ~]# kops rolling-update cluster
NAME STATUS NEEDUPDATE READY MIN TARGET MAX NODES
master-ap-northeast-2a Ready 0 1 1 1 1 1
nodes-ap-northeast-2a Ready 0 1 2 2 3 1
nodes-ap-northeast-2c Ready 0 1 1 1 1 1
No rolling-update required.
# 워커노드 증가 확인
(⎈|somaz:wordpress) [root@kops-ec2 ~]# kops get ig
NAME ROLE MACHINETYPE MIN MAX ZONES
master-ap-northeast-2a Master t3.medium 1 1 ap-northeast-2a
nodes-ap-northeast-2a Node t3.medium 2 3 ap-northeast-2a
nodes-ap-northeast-2c Node t3.medium 1 1 ap-northeast-2c
(⎈|somaz:wordpress) [root@kops-ec2 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
i-01963115b95429b3f Ready node 137m v1.24.9
i-02a16fd3436a7220a Ready control-plane 138m v1.24.9
i-0bf5cdb9fd690d4ec Ready node 137m v1.24.9
i-0cf36b7f1e414bd34 Ready node 3m14s v1.24.9
스터디 주요 내용
- AWS kOps 설치
- k8s 설정 파일을 s3에 저장
- 관리편리성
- kubectl 자동 완성 기능과 alias 사용하기
source <(kubectl completion bash)
echo 'source <(kubectl completion bash)' >> ~/.bashrc
echo 'alias k=kubectl' >> ~/.bashrc
echo 'complete -F __start_kubectl k' >> ~/.bashrc
- kubectl cli 플러그인 매니저 kre 설치
- krew로 kube-ctx, kube-ns 설치 및 사용
- krew로 기타 플러그인 설치 및 사용
- kube-ps1 설치 및 사용
# 설치 및 설정
git clone https://github.com/jonmosco/kube-ps1.git /root/kube-ps1
cat <<"EOT" >> /root/.bash_profile
source /root/kube-ps1/kube-ps1.sh
KUBE_PS1_SYMBOL_ENABLE=true
function get_cluster_short() {
echo "$1" | cut -d . -f1
}
KUBE_PS1_CLUSTER_FUNCTION=get_cluster_short
KUBE_PS1_SUFFIX=') '
PS1='$(kube_ps1)'$PS1
EOT
# 적용
exit
exit
(⎈|somaz:wordpress) [root@kops-ec2 ~]# kubectl get nodes
# default 네임스페이스 선택
kubectl ns default
- 선언형 (멱등성) 알아보기 실습
- 강제로 파드 삭제를 하면 어떤일이 벌어지는가?
- 다시 파드가 생성된다. 그 이유는 디플로이먼트에 셋팅된 갯수가 충족되야 하기 때문이다.
- 강제로 파드 삭제를 하면 어떤일이 벌어지는가?
- 서비스/파드(mario 게임) 배포 테스트 with CLB
- 트러블 슈팅
- 에러 상황 발생히 기본 조치 프로세스
- get 확인 → describe 확인 → 애플리케이션 로그(log) 확인 → 클러스터 에러 이벤트(event) 확인
- 디버깅 프로세스 : Apply → Get → Describe → Log → Event
- 에러 상황 발생히 기본 조치 프로세스
- Helm
- 쓰는이유 : 다양한 환경/설정에서 하나의 템플릿으로 재사용, 매니페스트 범용화
- Helm은 쿠버네티스 패키지 매니저이다. 그리고 오픈소스 소프트웨어이다!
스터디 1주차 후기
저는 k8s+openstack+ceph 기반으로 된 private cloud 엔지니어로 일하고 있습니다. 따라서 해당 스터디에 내용은 거의 처음 해보는 내용들이었습니다. 생각보다 속도가 빨랐지만, 메뉴얼을 잘 만들어주셔서 다행히 잘 따라갈 수 있었습니다.
2주차도 화이팅 하겠습니다!
728x90
반응형
'교육, 커뮤니티 후기 > PKOS 쿠버네티스 스터디' 카테고리의 다른 글
PKOS 쿠버네티스 스터디 6주차 - 얼럿매니저 로깅시스템 (0) | 2023.02.19 |
---|---|
PKOS 쿠버네티스 스터디 5주차 - 프로메테우스 그라파나 (0) | 2023.02.14 |
PKOS 쿠버네티스 스터디 4주차 - Harbor Gitlab Argocd (2) | 2023.02.06 |
PKOS 쿠버네티스 스터디 3주차 - Ingress & Storage (4) | 2023.02.03 |
PKOS 쿠버네티스 스터디 2주차 - 쿠버네티스 네트워크 (0) | 2023.01.16 |