วิธีการติดตั้งและใช้งาน 전체(GitOps 도구)บน 아마존 EKS-1부
소개하다.
GitOps[1]เป็นการนำ 도구, 모범 사례และประโยชน์ต่างๆจาก 지트และ 지속적인 통합/지속적인 배송(CI/CD)ที่มีการใช้งานกันเป็น 스탠더드ใน SDLC(Software Development Lifecycle)มาใช้ร่วมกับ 인프라 코드(IaC)ในทางฝั่งของ IT 운영เพื่อจัดการกับ 인프라 시설ต่างๆ
통량[2]เป็นหนึ่งใน GitOps 도구ที่ได้รับได้ความนิยมในปัจจุบัน เพื่อใช้การใช้จัดการ 리소스ต่างๆบน 쿠베르네트스 성계단โดย 릴리즈ที่ใช้ในปัจจุบันคือ 통량ซึ่งตัว 통량 계산ใน 무리를 이루다จะทำการ 잡아당기다ตัว 선언식(IaC)จาก Git 저장소และทำการ 쿠베르네트스 자원ต่างๆให้ตรงตามนั้น
ใน 블로그 게시물นี้เราจะมาดูการติดตั้งและใช้งาน 통량ในเบื้องต้นกัน
선결 조건
eksctl
และ flux
personal access token
บน GitHub 계정Amazon EKS 클러스터에 트래픽 설정 방법
eksctl[3]เป็นหนึ่งใน 표준 도구ที่ใช้ในการสร้างและจัดการ EKS 클러스터และตั้งแต่ 위슨
0.53.0
จะมี 특징.ในการติดตั้ง 통량รวมอยู่ด้วยขั้นตอนในการสร้าง EKS 클러스터ใหม่และติดตั้ง 통량โดยอัตโนมัติ
출구ค่าต่างๆที่จะต้องใช้ในขั้นตอนต่อๆไป
export GITHUB_USERNAME=<your GitHub username>
export GITHUB_TOKEN=<your GitHub personal access token>
สร้าง 프로파일ด้วย 비밀 번호ด้านล่างนี้และเปลี่ยน
<GitHub username>
เป็นชื่อ GitHub 사용자 이름ของเราcat << EOF > eks-gitops-demo.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: eks-gitops-demo
region: ap-southeast-1
managedNodeGroups:
- name: ng-1
instanceType: m5.large
desiredCapacity: 1
gitops:
flux:
gitProvider: github
flags:
owner: "${GITHUB_USERNAME}"
personal: "true"
private: "true"
repository: "eks-gitops-demo"
branch: "master"
namespace: "flux-system"
path: "clusters/eks-gitops-demo"
EOF
eksctl create cluster --config-file eks-gitops-demo.yaml
และรอจน 무리를 이루다สร้างเสร็จ kubectl --namespace flux-system get all
eks-gitops-demo
ถูกสร้างขึ้นมาและมี 언약ในส่วนของ 쿠베르네트스 목록 파일ของ 통량 분량ต่างๆ주의하다.สำหรับกรณีที่เป็น EKS 클러스터เดิมหรือต้องการติดตั้ง 통량แยกทีหลัง
eksctl enable flux
ได้ flux bootstrap
Flux의 기본 기능 사용 방법
ต่อมาเราจะมาดูการใช้งาน 통량แบบเบื้องต้นกัน
ตัวอย่างแรกจะเป็นการใช้ 쿠베르네트스 목록 파일ตามปกติ
เริ่มต้นจากการ 클론 GitHub 저장소ที่ 통량ได้สร้างขึ้นมา
git clone [email protected]:${GITHUB_USERNAME}/eks-gitops-demo.git
cd eks-gitops-demo
หลังจากนั้นเราจะสร้าง쿠베르네트스 목록 파일สำหรับ
nginx:1.14.2
배포แล้วทำการ 언약และ 밀다ไปยัง githubmkdir -p clusters/eks-gitops-demo/default/nginx
cat << EOF > clusters/eks-gitops-demo/default/nginx/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
EOF
git add clusters/eks-gitops-demo/default/nginx/deployment.yaml
git commit -m "Add Nginx deployment"
git push
flux reconcile source git flux-system
เพื่อทำการ 잡아당기다โดยทันทีได้kubectl get deployment nginx-deployment
หลังจากนั้นลองทำการเปลี่ยนใน 배포 목록 파일
nginx:1.15.0
และทำการ 언약และ 밀다ไปยัง githubอีกครั้งนึงsed -i '' 's/1.14.2/1.15.0/' clusters/eks-gitops-demo/default/nginx/deployment.yaml
git add clusters/eks-gitops-demo/default/nginx/deployment.yaml
git commit -m "Change Nginx image to 1.15.0"
git push
nginx:1.15.0
อีกตัวอย่างนึงจะเป็นการใช้งาน 통량ร่วมกับ 키를 잡다
เริ่มต้นจากการสร้าง 헬름스ที่ชี้ไปยัง 조타도 저장소ในตัวอย่างนี้เราจะใช้
prometheus-community
mkdir -p clusters/eks-gitops-demo/monitoring
cat << EOF > clusters/eks-gitops-demo/monitoring/namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
EOF
---
cat << EOF > clusters/eks-gitops-demo/monitoring/prometheus-community.yaml
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: HelmRepository
metadata:
name: prometheus-community
namespace: monitoring
spec:
url: https://prometheus-community.github.io/helm-charts
interval: 10m
EOF
หลังจากนั้นทำการสร้าง 투구 시전CRDสำหรับที่จะให้ 전체 배포โดยใช้ 다이어그램ที่ชื่อ
kube-prometheus-stack
หลังจากนั้นทำการ 언약และ 밀다ไปยัง githubmkdir -p clusters/eks-gitops-demo/monitoring
cat << EOF > clusters/eks-gitops-demo/monitoring/namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
EOF
cat << EOF > clusters/eks-gitops-demo/monitoring/kube-prometheus-stack.yaml
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: kube-prometheus-stack
namespace: monitoring
spec:
releaseName: kube-prometheus-stack
interval: 10m
chart:
spec:
chart: kube-prometheus-stack
sourceRef:
kind: HelmRepository
name: prometheus-community
namespace: monitoring
EOF
git add clusters/eks-gitops-demo/monitoring/*
git commit -m "Add Prometheus with Helm"
git push
flux reconcile source git flux-system
เพื่อ 거스름돈 거슬러 주다จาก githubและเนื่องจากใน 투구 시전CRDเราตั้ง 간헐ในการ 알맞다เป็นทุกๆ 10นาที เราสามารถใช้คำสั่ง flux --namespace monitoring reconcile helmrelease kube-prometheus-stack
เพื่อให้ 알맞다ทันทีได้เช่นกัน결론
지토프스เป็นการนำเทคนิคและการใช้งาน Git,CI/CDและ IaCมาประกอบกันเพื่อให้เราสามารถจัดการ 인프라 시설ได้อย่างมีประสิทธิภาพและลดความผิดพลาดที่อาจจะเกิดขึ้นจาก 인공 과정
통량เป็น 공구.ที่ช่วยให้เราสามารถ GitOps 구현บน 쿠베르네트스ได้อย่างสะดวกยิ่งขึ้น ซึ่งใน 블로그 게시물นี้เราได้เห็นวิธีการติดตั้งบน 아마존 EKSผ่าน eksctl
หลังจากนั้นเราได้เห็นตัวอย่างวิธีการติดใช้งาน 통량ในเบื้องต้น และใน 섹션ที่ 2เราจะมาดูตัวอย่างและ 특징.อื่นๆของ 통량กัน
도구책
[1] https://www.gitops.tech/#what-is-gitops
[2] https://fluxcd.io/
[3] https://eksctl.io/
[4] https://helm.sh/
Reference
이 문제에 관하여(วิธีการติดตั้งและใช้งาน 전체(GitOps 도구)บน 아마존 EKS-1부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/awscommunity-asean/flux-gitops-tool-amazon-eks-part-1-4gla텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)