CloudNet@

AWS EKS ์Šคํ„ฐ๋”” 3์ฃผ์ฐจ - Storage

  • kkumtree

2023-05-12T05:36:38+09:00

์ด๋ฒˆ ์ฃผ์ฐจ์—๋Š” ์Šคํ† ๋ฆฌ์ง€์— ๋Œ€ํ•ด ์‹ค์Šต์„ ์ง„ํ–‰ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ๋ฒˆ kOps ์Šคํ„ฐ๋””์—์„œ ๋‹ค๋ฃจ์—ˆ๋˜ ๋‚ด์šฉ์ด์ง€๋งŒ, ๋ถ€์กฑํ–ˆ๋˜ ๋‚ด์šฉ์„ ๋ณด์ถฉํ•˜๋ฉด์„œ ์ž‘์„ฑ์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ฃผ์š”ํ•œ ๋‚ด์šฉ์€…

  • NodeAffinity๋ฅผ ์ด์šฉํ•œ ๋ผ๋ฒจ๋ง
  • AWS EBS controller์˜ ๊ฒฝ์šฐ, AWS managed policy๋ฅผ ํ™œ์šฉ
  • AWS Volume SnapShots Controller๋ฅผ ํ†ตํ•œ ๋ณผ๋ฅจ ๋ฐฑ์—…
  • AWS EFS controller์—์„œ์˜ ๋™์  ํ”„๋กœ๋น„์ €๋‹
  • AWS EKS ์‹ ๊ทœ ๋…ธ๋“œ๊ทธ๋ฃน ์ƒ์„ฑ

๋ณ„๋„๋กœ kube-ops-view์˜ ๊ฒฝ์šฐ, ์›น์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค๋Š” ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์‹ค์Šต ํ™˜๊ฒฝ ๋ฐฐํฌ

  • 2์ฃผ์ฐจ์— ์‹ค์Šตํ–ˆ๋˜ ๋‚ด์šฉ๋“ค์„ ๋ฏธ๋ฆฌ ๋ฐฐํฌ
    1. AWS LB
    2. ExternalDNS
    3. kube-ops-view
  • context ์ด๋ฆ„ ๋ณ€๊ฒฝ
    • ์ง€๋‚œ ๋ฒˆ๊นŒ์ง€ pkos๊ฐ€ ๋œจ๋Š” ํ˜„์ƒ์ด ์žˆ์—ˆ๋Š”๋ฐ, ๋‹‰๋„ค์ž„์„ ๋ณ„๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ
  • EFS ์ƒ์„ฑ ๊ด€๋ จ cloudformation์ด ์ถ”๊ฐ€๋˜์—ˆ์Œ
# ์‹ค์Šต YAML ํŒŒ์ผ
curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/eks-oneclick2.yaml

# cloudformation ์Šคํƒ ์ƒ์„ฑ
aws cloudformation deploy --template-file eks-oneclick2.yaml --stack-name myeks --parameter-overrides KeyName=aews SgIngressSshCidr=$(curl -s ipinfo.io/ip)/32  MyIamUserAccessKeyID=AKIA5... MyIamUserSecretAccessKey=CVNa2... ClusterBaseName=myeks --region ap-northeast-2

ssh -i ~/.ssh/aews.pem ec2-user@$(aws cloudformation describe-stacks --stack-name myeks --query 'Stacks[*].Outputs[0].OutputValue' --output text)

# default ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ ์šฉ
kubectl ns default

# (์˜ต์…˜) context ์ด๋ฆ„ ๋ณ€๊ฒฝ
NICK=kkumtree
kubectl ctx
kubectl config rename-context [email protected] $NICK@myeks

# EFS ํ™•์ธ : AWS ๊ด€๋ฆฌ์ฝ˜์†” EFS ํ™•์ธ
EfsFsId=$(aws efs describe-file-systems --query 'FileSystems[*].FileSystemId' --output text)
echo $EfsFsId
mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport $EfsFsId.efs.ap-northeast-2.amazonaws.com:/ /mnt/myefs
df -hT --type nfs4
mount | grep nfs4
echo "Test efs exist with file " > /mnt/myefs/memo.txt
cat /mnt/myefs/memo.txt
rm -f /mnt/myefs/memo.txt

# ์Šคํ† ๋ฆฌ์ง€ํด๋ž˜์Šค ๋ฐ CSI ๋…ธ๋“œ ํ™•์ธ
kubectl get sc
kubectl get sc gp2 -o yaml | yh
kubectl get csinodes

# ๋…ธ๋“œ ์ •๋ณด ํ™•์ธ
kubectl get node --label-columns=node.kubernetes.io/instance-type,eks.amazonaws.com/capacityType,topology.kubernetes.io/zone
eksctl get iamidentitymapping --cluster myeks

# ๋…ธ๋“œ IP ํ™•์ธ ๋ฐ PrivateIP ๋ณ€์ˆ˜ ์ง€์ •
N1=$(kubectl get node --label-columns=topology.kubernetes.io/zone --selector=topology.kubernetes.io/zone=ap-northeast-2a -o jsonpath={.items[0].status.addresses[0].address})
N2=$(kubectl get node --label-columns=topology.kubernetes.io/zone --selector=topology.kubernetes.io/zone=ap-northeast-2b -o jsonpath={.items[0].status.addresses[0].address})
N3=$(kubectl get node --label-columns=topology.kubernetes.io/zone --selector=topology.kubernetes.io/zone=ap-northeast-2c -o jsonpath={.items[0].status.addresses[0].address})
echo "export N1=$N1" >> /etc/profile
echo "export N2=$N2" >> /etc/profile
echo "export N3=$N3" >> /etc/profile
echo $N1, $N2, $N3

# ๋…ธ๋“œ ๋ณด์•ˆ๊ทธ๋ฃน ID ํ™•์ธ
NGSGID=$(aws ec2 describe-security-groups --filters Name=group-name,Values=*ng1* --query "SecurityGroups[*].[GroupId]" --output text)
aws ec2 authorize-security-group-ingress --group-id $NGSGID --protocol '-1' --cidr 192.168.1.100/32

# ์›Œ์ปค ๋…ธ๋“œ SSH ์ ‘์†
ssh ec2-user@$N1 hostname
ssh ec2-user@$N2 hostname
ssh ec2-user@$N3 hostname

# ๋…ธ๋“œ์— ํˆด ์„ค์น˜
ssh ec2-user@$N1 sudo yum install links tree jq tcpdump sysstat -y
ssh ec2-user@$N2 sudo yum install links tree jq tcpdump sysstat -y
ssh ec2-user@$N3 sudo yum install links tree jq tcpdump sysstat -y

# AWS LB, ExternalDNS ์„ค์น˜
helm repo add eks https://aws.github.io/eks-charts
helm repo update
helm install aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=$CLUSTER_NAME \
  --set serviceAccount.create=false --set serviceAccount.name=aws-load-balancer-controller

# ExternalDNS
MyDomain=awskops.click
MyDnzHostedZoneId=$(aws route53 list-hosted-zones-by-name --dns-name "${MyDomain}." --query "HostedZones[0].Id" --output text)
echo $MyDomain, $MyDnzHostedZoneId
curl -s -O https://raw.githubusercontent.com/gasida/PKOS/main/aews/externaldns.yaml
MyDomain=$MyDomain MyDnzHostedZoneId=$MyDnzHostedZoneId envsubst < externaldns.yaml | kubectl apply -f -

1-1. kube-ops-view

  • ์‹œ๊ฐ์ ์œผ๋กœ ํ˜„์žฌ k8s์˜ ์ƒํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํˆด
  • ์•ˆ๋˜๋Š” ์ค„ ์•Œ์•˜๋Š”๋ฐ, ๋ทฐ์–ด๊ฐ€ ๋œฐ ๋•Œ๊นŒ์ง€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์ด์—ˆ์Œ.

1-kube-ops-view

AWS EKS ์Šคํ„ฐ๋”” 2์ฃผ์ฐจ - Network

  • kkumtree

2023-05-07T07:30:52+09:00

# ์•„์‰ฝ๊ฒŒ๋„ ์‹ ๊ทœ ํ•ญ๋ชฉ์ธ istio, kube-ops-view๋Š” ์‹ค์Šต ์‹คํŒจ
- istio: `myhome.yaml` ์„ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑํ• ์ง€ ๋ชฐ๋ผ์„œ ์ค‘๋‹จ
- kube-ops-view: A๋ ˆ์ฝ”๋“œ์— ์ œ๋Œ€๋กœ ์žกํžˆ์ง€ ์•Š์Œ

์ง€๋‚œ 1์ฃผ์ฐจ์— ์ด์–ด, ์ด๋ฒˆ ์ฃผ์—๋Š” EKS์˜ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋Š” ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ง์ „ ์Šคํ„ฐ๋””์—์„œ๋„ ๋ฐ”๋กœ ๊ด‘ํƒˆ๋‹นํ•˜๋‚˜?ํ•˜๋ฉฐ ๋ฐค๊ณผ ์ฃผ๋ง์„ ํ•˜์–—๊ฒŒ ๋ถˆํƒœ์› ์„ ์ •๋„๋กœ
๊ฐ€์žฅ ๊ณ ๋‚œ๋„๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๋‹ค์‹œ ๋งŒ๋‚˜๋‹ˆ ์ด์ œ 1% ์นœ๊ทผ๊ฐ์ด ๋А๊ปด์ง€๊ณ  ์žˆ๋„ค์š”.

์ดํ•ดํ–ˆ๋ƒ๊ณ ์š”?

์ž ๊ทธ๋Ÿผ ํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

1. cloudformation์„ ํ™œ์šฉํ•œ EKS ์›ํด๋ฆญ ๊ตฌ์„ฑ

  • ํ•™์Šต์„ ์œ„ํ•ด, ์ด๋ฒˆ์—๋„ ๊ฐ€์‹œ๋‹ค๋‹˜์ด ์ค€๋น„ํ•ด์ฃผ์‹  ์›ํด๋ฆญ ๋ฐฐํฌ yaml์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐฐํฌ.
  • ์™„์ „ ๋ฐฐํฌ๊นŒ์ง€ ๋Œ€๋žต 20๋ถ„ ๊ฐ€๋Ÿ‰ ์†Œ์š”
  • IAM์—์„œ ๋ฏธ๋ฆฌ ๋ฐœ๊ธ‰ํ•ด๋‘” ์•ก์„ธ์Šคํ‚ค/์‹œํฌ๋ฆฟํ‚ค๋ฅผ ์•Œ์•„๋‘์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
# ์›ํด๋ฆญ ์…‹์—…
aws cloudformation deploy --template-file ~/Documents/aews/eks-oneclick.yaml --stack-name myeks --parameter-overrides KeyName=aews SgIngressSshCidr=$(curl -s ipinfo.io/ip)/32 MyIamUserAccessKeyID={ACSSKEY|AKIA..}  MyIamUserSecretAccessKey={SECUKEY|7ob..} ClusterBaseName=myeks --region ap-northeast-2

# ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(๋งˆ์Šคํ„ฐ๋…ธ๋“œ) ์ ‘์† ํ™•์ธ
ssh -i ~/.ssh/aews.pem ec2-user@$(aws cloudformation describe-stacks --stack-name myeks --query 'Stacks[*].Outputs[0].OutputValue' --output text)

oneclick_templete

AWS EKS ์Šคํ„ฐ๋”” 1์ฃผ์ฐจ

  • kkumtree

2023-04-30T03:00:15+09:00

์ตœ๊ทผ CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š”
AWS EKS Workshop Study(์ดํ•˜, AEWS)์— ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

k8s๊ฐ€ ์›Œ๋‚™ ์ธ๊ธฐ๊ฐ€ ๋งŽ๊ธฐ๋„ ํ•˜์ง€๋งŒ, ์ง€๋‚œ kOps ์Šคํ„ฐ๋””๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ์š”์†Œ๊ฐ€ ์ฐธ ๋งŽ์€ ๊ฒƒ์„ ๋А๊ผˆ์—ˆ๊ณ ,
์ข€๋” ์ˆ˜์›”ํ•˜๊ฒŒ ์ดํ•ด๋ฅผ ํ•ด๋ณด๊ณ ์ž AWS ์„œ๋น„์Šค์ธ
EKS(Elastic Kubernetes Service)๋ฅผ ์ด๋ฒˆ ๊ธฐํšŒ์— ์‚ดํŽด๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

EKS ์‚ฌ์šฉ์— ์žˆ์–ด ๊ณ ๋ ค์‚ฌํ•ญ

EKS๋Š” ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค(managed service)์ด๊ธฐ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ์œ„ํ•œ Control Plane(์ผ๋ช…, ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ)์„ AWS์—์„œ ๊ด€๋ฆฌํ•ด์ค๋‹ˆ๋‹ค.
    • ์›Œ์ปค๋…ธ๋“œ๋Š”
      1. ์‚ฌ์šฉ์ž๊ฐ€ AMI๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์ด๋ฅผ ์‚ฌ์šฉ
      2. AWS์—์„œ ์ œ๊ณตํ•˜๋Š” Fargate๋กœ VM์„ ํ• ๋‹นํ•˜์—ฌ ์‚ฌ์šฉ
  • kOps์™€๋„ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๋‹ค๋ฅธ AWS ์„œ๋น„์Šค์™€์˜ ์—ฐ๋™์ด ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
    ๊ฐœ์ธ์ ์œผ๋กœ๋Š” ACM์˜ ์ธ์ฆ์„œ ์‚ฌ์šฉ์— ์žˆ์–ด ๋” ํŽธํ•  ๊ฒƒ์ด๋ผ ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
    1. ECR์— ์ €์žฅํ•œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ํ™œ์šฉ๊ฐ€๋Šฅ
    2. IAM์„ ํ†ตํ•œ ๊ถŒํ•œ ๊ด€๋ฆฌ
    3. ELB๋ฅผ ํ†ตํ•œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ
    4. VPC๋ฅผ ํ†ตํ•œ ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ
  • ์˜คํ”ˆ์†Œ์Šค k8s ๊ธฐ๋ฐ˜์ด๊ธฐ์— EKS๋กœ์˜ ์šฉ์ดํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

API ์„œ๋ฒ„ Cluster Endpoint ๊ตฌ์„ฑ

  • EKS๋Š” Control Plane์„ ๊ด€๋ฆฌํ•ด์ฃผ๋‚˜, ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ์ ‘๊ทผ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ด๋ฅผ ์œ„ํ•ด, Cluster Endpoint๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

kops๋กœ ์†์‰ฝ๊ฒŒ spot instance ์š”์ฒญํ•˜๊ธฐ

  • kkumtree

2023-03-06T18:43:51+09:00

kops๋กœ ์ถฉ๋ถ„ํžˆ spot instance๋ฅผ ๊ตด๋ฆด ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ?

  • ๋ž€ ์ƒ๊ฐ์„ pkos ์Šคํ„ฐ๋”” ๋‚ด๋‚ด ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค๋งŒ,
    ์ด๋ฏธ t3.small ๋Œ๋ ธ๋‹ค๊ฐ€ ์ œ๋Œ€๋กœ ๋…ธ๋“œ๋“ค์ด ์ž‘๋™ํ•˜์ง€๋„ ์•Š์•˜์Œ์„ ๋ง›๋ดค๊ธฐ ๋•Œ๋ฌธ์—…
    ์šฐ์„ ์ˆœ์œ„๋Š” ์ฃผ์ฐจ๋ณ„ ๊ณผ์ œ ์ œ์ถœ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์ œ์•ผ ์‹œ๋ฒ” ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๊ณ , ๊ธ€์„ ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค.
  • ์š”์•ฝํ•˜์ž๋ฉด ๋ณต์Šต์šฉ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํžˆ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ผ๋Š” ํŒ๋‹จ์ž…๋‹ˆ๋‹ค.
    • ์ฐธ๊ณ ๋กœ, ์†์‰ฝ๊ฒŒ === ์•ผ๋งค ์˜ ๋А๋‚Œ์œผ๋กœ ๊ธฐ์ˆ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.
    • ๊ธ€ ์ฝ๊ธฐ ๊ท€์ฐฎ๋‹ค! ์‹ถ์œผ๋ฉด ์—ฌ๊ธฐ์—์„œ ์›๊ธ€์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™œ ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค์ธ๊ฐ€?

  • ์ด๋ฏธ ์ด์ „ ํฌ์ŠคํŒ…์˜ ์„œ๋‘์—์„œ ์–ธ๊ธ‰ํ•œ ๋ฐ” ์žˆ์œผ๋‚˜,
    ์•„๋ฌด๋ฆฌ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๊ฐ€ ํ•ฉ๋ฆฌ์ ์ด์–ด๋„ On-demand ์ธ์Šคํ„ด์Šค๋ฅผ ํ•™์Šต์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์—” ์‚ด์ง ๋น„ํšจ์œจ์ ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

AWS ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… - 7์ฃผ ๊ฐ„์˜ k8s ์‹ค๋ฌด ์Šคํ„ฐ๋””๋ฅผ ๋งˆ์น˜๋ฉฐ

  • kkumtree

2023-02-25T22:07:23+09:00

์ตœ๊ทผ CloudNet@์—์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” Production Kubernetes Online Study(์ดํ•˜, PKOS)๋„ ๋งˆ์ง€๋ง‰ ์ฃผ์ฐจ๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.
๋‚จ์€ ๊ณ„ํš์€ 4์›”๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋Š” ํœด์‹๊ธฐ๊ฐ„(a.k.a. ๊ณ„์•ฝ๋งŒ๋ฃŒ ํ›„)์ค‘ ๋ณต์Šต ๊ฒธ, ํฌ์ŠคํŒ…์„ ํ•ด๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์‹คํŒจ๋ฅผ ๊ฑฐ๋“ญํ•˜์—ฌ ์ถ”๊ฐ€๋กœ ์•Œ๊ฒŒ๋œ ์†Œ์†Œํ•œ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

keep_your_wallet (๋ฌผ๋ก , ์ƒˆ๋ฒฝ์— ๊ฒจ์šฐ๊ฒจ์šฐ ์ฃผ์ฐจ๋ณ„ ๊ณผ์ œ ์ œ์ถœํ•˜๊ณ  ๊ธฐ์ ˆํ•˜๋Š” ๋ฐ”๋žŒ์—, ๋ง›์ ํ•˜๋‹ค ๊นจ๋‹ซ๊ณ  ์†Œ์Šค๋ผ์น˜๊ฒŒ ํœด๋Œ€ํฐ์œผ๋กœ ์ˆ˜๋™ ์‚ญ์ œํ•œ๊ฒŒ ๋น„์šฉ์˜ ์ฃผ ์š”์ธ์ด๊ธด ํ•˜๋„ค์š”;)

๋ถˆํ•„์š”ํ•œ Try & Fail์„ ์ค„์ด๊ณ , ์ฆ๊ฑฐ์šด k8s ํ•™์Šต๋˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

1. AWS ๊ณ„์ • ์ž ๊ธˆ ํ•ด์ œ

์ƒํ™ฉ

  • ์ฒ˜์Œ 1์ฃผ์ฐจ ์•ˆ๋‚ด๊ฐ€ ๋๋‚˜๊ณ  Route53 Hostname์„ ๊ตฌ๋งคํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ, ์ž๊พธ ๊ฒฐ์ œ๊ฐ€ ์‹คํŒจํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

Traefik์„ ํ™œ์šฉํ•œ minikube ์˜ˆ์ œ ๊ตฌํ˜„์‹œ๋„ w/Apple Silicon

  • kkumtree

2023-02-05T04:54:06+09:00

์ฃผ๋ณ€์œผ๋กœ๋ถ€ํ„ฐ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์€ ๋‚ด์šฉ์ด ์žˆ์–ด ์ƒˆ๋กœ์šด ๊ธ€๋กœ ๋ณด์™„์˜ˆ์ •์ž…๋‹ˆ๋‹ค. 
- colima๋Š” containerd์ฒ˜๋Ÿผ cri๊ฐ€ ์•„๋‹Œ, Docker engine๊ณผ containerd ์‚ฌ์ด์˜ ๋ฌผ๊ฑด์œผ๋กœ ์ถ”์ •๋ฉ๋‹ˆ๋‹ค. 
  - ๋„์ปค ์—”์ง„์€ ํ˜„์žฌ containerd๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌ.
  - colima๋„ docker shim ๊ตฌ์กฐ๋Š” ํƒˆํ”ผํ–ˆ์„ ๊ฑฐ๋ผ๊ณ  ์ถ”์ธก ์ค‘. 
  - ๋„์ปค ์—”์ง„๊ณผ containerd ์‚ฌ์ด์˜ ์ปจํ…Œ์ด๋„ˆ ์—”์ง„(๊ด€๋ฆฌ๋„๊ตฌ?)๋กœ ๋ณด์ž„
- colima ์‹œ์ž‘ ์‹œ, ํŠน์ • ๋Ÿฐํƒ€์ž„์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ๋ฅผ ์ž˜ ์ฝ์–ด๋ด…์‹œ๋‹ค.
  `colima start --runtime containerd`
- k8s๋ฅผ ์œ„ํ•œ colima ์‹œ์ž‘ ๋ช…๋ น์–ด๋Š” ๋ณ„๋„๋กœ ์žˆ์Šต๋‹ˆ๋‹ค. colima github๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.
traefik v1.7์—์„œ๋Š” ์˜ˆ์ œ ์„ค๋ช…์˜ ๊ธฐ์ค€์ด
k8s.io/v1beta1 API(deprecated)์ž…๋‹ˆ๋‹ค   
k8s.io/v1 API๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์œผ๋‹ˆ, ์ฐธ๊ณ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋กœ์ปฌํ™˜๊ฒฝ(minikube)์—์„œ Traefik(^2) ์˜ˆ์ œ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. <<
  2. <
  3. 1
  4. 2
  5. 3
  6. >
  7. >>

kkumtree

Source code on GitHub

ยฉ 2025 kkumtree and contributors All rights reserved.
Licensed under
CC BY-NC-ND 4.0