Background
- CI/CD( Continuous Integration/Continuous Deployment ) thị nhất chủng nhuyễn kiện khai phát lưu trình, chỉ tại thông quá tự động hóa hòa trì tục tập thành đích phương thức đề cao nhuyễn kiện giao phó đích hiệu suất hòa chất lượng. Tha bao quát trì tục tập thành (CI) hòa trì tục bộ thự (CD) lưỡng cá chủ yếu giai đoạn.
- Giá lí giới thiệu nhất chủng khai nguyên đích trì tục giao phó công cụ
Argo CD
.- Argo CD quan phương văn đương địa chỉ:https://argo-cd.readthedocs.io
- Argo CD nguyên mã địa chỉ:https://github.com/argoproj/argo-cd
1, quan vu Argo
Argo thị nhất cá khai nguyên đích hạng mục, chủ yếu thị khoách triển Kubernetes đích nguyên sinh công năng, canh hảo địa bả ứng dụng vận hành tại Kubernetes bình đài.
Github địa chỉ:https://github.com/argoproj
Mục tiền Argo bao hàm đa cá tử hạng mục:
- Argo Workflows: Cơ vu dung khí đích nhậm vụ biên bài công cụ.
- Argo CD: Cơ vu GitOps thanh minh đích trì tục giao phó công cụ.
- Argo Events: Sự kiện khu động công cụ.
- Argo Rollouts: Chi trì kim ti tước dĩ cập lam lục phát bố đích ứng dụng tiệm tiến thức phát bố công cụ.
Bổn văn chủ yếu giới thiệu trì tục giao phó công cụ Argo CD đích bộ thự sử dụng.
2, Argo CD giản giới
Argo CD
Thị nhất chủng khai nguyên đích trì tục giao phó công cụ, dụng vu tự động hóa hòa quản lý ứng dụng trình tự đích bộ thự, canh tân hòa hồi cổn. Tha thị nhất cá thanh minh thức đích công cụ, chuyên vi tại Kubernetes tập quần trung tiến hành ứng dụng trình tự bộ thự nhi thiết kế.- Argo CD đích chủ yếu công năng bao quát:
–Trì tục giao phó:Argo CD duẫn hứa dụng hộ tương ứng dụng trình tự đích phối trí hòa thanh đan văn kiện định nghĩa vi Git tồn trữ khố trung đích thanh minh thức tư nguyên, tòng nhi thật hiện trì tục giao phó. Tha năng cú tự động kiểm trắc Git tồn trữ khố trung đích canh cải, tịnh tương giá ta canh cải ứng dụng vu mục tiêu Kubernetes tập quần.
–Kiện khang giam trắc hòa hồi cổn:Argo CD năng cú giam trắc ứng dụng trình tự đích kiện khang trạng thái, tịnh tại kiểm trắc đáo vấn đề thời xúc phát hồi cổn thao tác. Giá hữu trợ vu xác bảo ứng dụng trình tự tại bộ thự kỳ gian hòa vận hành thời bảo trì ổn định hòa khả kháo.
–Đa hoàn cảnh quản lý:Argo CD chi trì đa cá hoàn cảnh ( lệ như khai phát, trắc thí, sinh sản ) đích quản lý. Tha khả dĩ bang trợ dụng hộ tại bất đồng hoàn cảnh trung tiến hành ứng dụng trình tự đích bộ thự hòa phối trí quản lý, tịnh xác bảo giá ta hoàn cảnh chi gian đích nhất trí tính.
–Cơ vu GitOps đích thao tác:Argo CD thải dụng liễu GitOps đích thao tác mô thức, tức tương ứng dụng trình tự đích trạng thái hòa phối trí định nghĩa vi Git tồn trữ khố trung đích thanh minh thức tư nguyên. Giá sử đắc đoàn đội khả dĩ sử dụng bản bổn khống chế hòa đại mã thẩm tra đẳng nhuyễn kiện công trình thật tiễn lai quản lý ứng dụng trình tự đích sinh mệnh chu kỳ. - Kubernetes thanh đan khả dĩ thông quá dĩ hạ kỉ chủng phương thức chỉ định:
– kustomize ứng dụng trình tự
– helm chart
– jsonnet văn kiện
– YAML/json thanh đan đích phổ thông mục lục
– phối trí vi phối trí quản lý sáp kiện đích nhậm hà tự định nghĩa phối trí quản lý công cụ
3, Argo CD đích nguyên lý
Argocd thông quá nhất cá Kubernetes khống chế khí lai thật hiện đích, tha trì tục watch chính tại vận hành đích ứng dụng trình tự tịnh tương đương tiền đích thật thời trạng thái dữ sở nhu đích mục tiêu trạng thái ( Git tồn trữ khố trung chỉ định đích ) tiến hành bỉ giác. Dĩ kinh bộ thự đích ứng dụng trình tự đích thật tế trạng thái dữ mục tiêu trạng thái hữu soa dị, tắc bị nhận vi thị trạng thái, Argo CD hội báo cáo hiển kỳ giá ta soa dị, đồng thời đề cung công cụ lai tự động hoặc thủ động tương trạng thái đồng bộ đáo kỳ vọng đích mục tiêu trạng thái. Tại Git thương khố trung đối kỳ vọng mục tiêu trạng thái sở tố đích nhậm hà tu cải đô khả dĩ tự động ứng dụng phản quỹ đáo chỉ định đích mục tiêu hoàn cảnh trung khứ.
4, Argo CD tại CI/CD lưu trình trung đích vị trí
Cụ thể bộ sậu:
- Tương ứng dụng đích Git thương khố phân vi Application Deployment file hòa Docker file lưỡng cá khố. Docker file dụng vu tồn phóng ứng dụng đích hạch tâm đại mã dĩ cập Docker build file, hậu tục tương hội trực tiếp đả bao thành Docker image; Application Deployment file khả dĩ Kustomize, Helm, Ksconnet, Jsonnet đẳng đa chủng Kubernetes bao quản lý công cụ lai định nghĩa; dĩ Helm vi lệ, Chart trung sở sử dụng đáo đích Image do Docker file Code đả bao hoàn thành hậu đề cung;
- Sử dụng Jenkins hoặc Gitlab đẳng CI công cụ tiến hành tự động hóa cấu kiến đả bao, tịnh tương Docker image push đáo Harbor kính tượng thương khố;
- Sử dụng Argo CD bộ thự ứng dụng. Argo CD khả dĩ độc lập vu tập quần chi ngoại, tịnh thả chi trì quản lý đa cá Kubernetes tập quần. Tại Argo CD thượng phối trí hảo ứng dụng bộ thự đích tương quan tín tức hậu Argo CD tiện khả dĩ chính thường công tác, Argo CD hội tự động hòa đại mã thương khố Application deployment file đích nội dung tiến hành giáo nghiệm, đương đại mã thương khố trung ứng dụng chúc tính đẳng tín tức phát sinh biến hóa thời, Argo CD hội tự động đồng bộ canh tân Kubernetes tập quần trung đích ứng dụng; ứng dụng khải động thời, hội tòng Harbor kính tượng thương khố lạp thủ Docker image.
5, Argo CD đích an trang phối trí
Thủ tiên nhu yếu xác định an trang đích bản bổn
Phóng vấn Argo CD quan phương văn đương địa chỉ:https://argo-cd.readthedocs.io,Tra tuân dữ nhĩ k8s bản bổn đối ứng đích Argo CD bản bổn. Ngã giá lí k8s thị v1.24.9, sở dĩ tuyển trạch 2.8 bản bổn đích Argo CD.An trang bộ thự
- An trang phương thức hữu ngận đa chủng, giá lí trực tiếp tuyển trạch quan phương đề cung tư nguyên thanh đan văn kiện.
- Do vu nhu yếu tuyển trạch k8s đối ứng đích bản bổn, tịnh thả github phóng vấn thụ hạn, kiến nghị tuyển trạch hảo bản bổn hạ tái hạ lai đối ứng đích
install.yaml
Ly tuyến an trang.- Giá lí an trang đích tiêu chuẩn bản bổn, đương nhiên dã khả dĩ tuyển trạch cao khả dụng đích an trang phương thức.
# một hữu kubectl đích tiên an trang kubectl
kubectl create namespace argocd
kubectl apply-nargocd-fhttps://github.com/argoproj/argo-cd/tree/release-2.8/manifests/install.yaml
# hoặc giả
kubectl apply-nargocd-fhttps://raw.githubusercontent.com/argoproj/argo-cd/v2.8.8/manifests/install.yaml
- An trang CLI công cụ
Argo CD CLI thị dụng vu quản lý Argo CD đích mệnh lệnh hành công cụ. Giá lí bất tố tường tế giới thiệu, hậu diện ngã môn chủ yếu sử dụng web ui lai thao tác Argo CD. Cụ thể hạ tái địa chỉ khả dĩ khứ github địa chỉ thượng khứ trảo.
- Phát bố Argo CD phục vụ
- Mặc nhận tình huống hạ, Argo CD phục vụ bất đối ngoại bạo lộ phục vụ, khả dĩ thông quá LoadBalancer hoặc giả NodePort loại hình đích Service, Ingress, Kubectl đoan khẩu chuyển phát đẳng phương thức tương Argo CD phục vụ phát bố đáo Kubernetes tập quần ngoại bộ.
- Giá lí sử dụng dĩ hạ mệnh lệnh thông quá NodePort phục vụ đích phương thức bạo lộ Argo CD đáo tập quần ngoại bộ:
# tu cải Service loại hình
kubectl patch svc argocd-server-nargocd-p'{ "spec": { "type": "NodePort" }}'
# hoạch thủ tùy cơ sinh thành đích NodePort đoan khẩu
kubectl get svc-nargocd
- Phóng vấn Web UI
- Bả danh tự vi argocd-server đích Service cải thành NodePort loại hình hậu, tựu khả dĩ tại tập quần ngoại bộ thông quá < tiết điểm IP>:< tùy cơ sinh thành đích NodePort đoan khẩu > lai phóng vấn Argo CD liễu;
- Lưu lãm khí thâu nhập https://< tiết điểm IP>:port phóng vấn Argo CD;
- Mặc nhận tình huống hạ admin trướng hào đích sơ thủy mật mã thị tự động sinh thành đích, hội dĩ minh văn đích hình thức tồn trữ tại Argo CD an trang đích mệnh danh không gian trung danh vi argocd-initial-admin-secret đích Secret đối tượng hạ đích password tự đoạn hạ, khả dĩ dụng hạ diện đích mệnh lệnh hoạch thủ:
kubectl get secret argocd-initial-admin-secret-ojsonpath="{.data.password}"-nargocd|base64-d
Đăng lục hiệt diện
6, Argo CD đích sử dụng -Web UI bộ thự ứng dụng
Chuẩn bị git thương khố trắc thí hạng mụcargocd-test
Giá lí kỳ thật chỉ nhu yếu deployment.yaml hòa service.yaml, Dockerfile hòa index.html dụng vu cấu kiến kính tượng thôi tống đáo harbor tư phục.
- Cấu kiến tư phục kính tượng ( giá bộ khả tuyển đích, bất thị tất tu đích, ngã giá lí thị vi liễu hậu diện tập thành jenkins hòa harbor)
docker login --username=admin 192.168.19.234:5100
docker build -t nginx:v1.
docker tag nginx:v1 192.168.19.234:5100/mid-base/nginx:v1
docker push 192.168.19.234:5100/mid-base/nginx:v1
docker rmi nginx:v1 192.168.19.234:5100/mid-base/nginx:v1
- Dockerfile
FROM nginx:latest
COPY index.html /usr/share/nginx/html
- index.html
hello world!
- deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: 192.168.19.234:5100/mid-base/nginx:v1
name: nginx
ports:
- containerPort: 80
- service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
ports:
- port: 80
targetPort: 80
nodePort: 30001
type: NodePort
selector:
app: nginx
Gitlab sang kiến Access Token
Phối trí GitLab thương khố nhận chứng tín tức
Sang kiến Argo CD App
- Thủ tiên sang kiến nhất cá mệnh danh không gian my-apps dụng vu Argo CD bộ thự ứng dụng
kubectl create ns my-apps
Điền tả ứng dụng cơ bổn phối trí tín tức
Thương khố nguyên phối trí
Mục tiêu tập quần phối trí
Điểm kích tả thượng phương đích
CREATE
Án nữu sang kiến ứng dụng, sang kiến hoàn thành hậu hội tự động đồng bộ như hạ đồ sở kỳ, thử thời xử vu Syncing đích trạng thái, như hạ đồ sở kỳ:Đồng bộ hoàn thành hậu như hạ đồ sở kỳ:
Giải quyết Argo CD tự động đồng bộ diên trì đích vấn đề
- ArgoCD mặc nhận mỗi 3 phân chung hội lạp thủ thương khố kiểm tra thị phủ hữu tân đích đề giao, nhĩ dã khả dĩ tại ArgoCD khống chế đài thủ động điểm kích Sync án nữu lai xúc phát đồng bộ.
- Vi liễu tiêu trừ luân tuân diên trì, API phục vụ đoan khả dĩ phối trí vi tiếp thu webhook sự kiện, tòng nhi thật thời hoạch thủ Git tồn trữ khố trung đích biến hóa. Đương nhiên dã khả dĩ thông quá tu cải argocd-server đích phối trí
timeout.reconciliation: 180s
,Nhiên hậu trọng khải giá cá dung khí argocd-repo-server ( bất thị ngận thôi tiến, nhân vi thiết trí đích gian cách tiểu, hội nhất trực luân huấn, một tất yếu ).- Argo CD chi trì lai tự GitHub, GitLab, Bitbucket, Bitbucket Server hòa Gogs đích Git webhook sự kiện.
- Giá lí ngã môn dĩ GitLab vi lệ, phối trí webhook lai thật hiện giá nhất công năng, cụ thể thao tác như hạ đồ sở kỳ:
Webhook đích địa chỉ điền tả Argo CD đích API tiếp khẩu địa chỉhttps://192.168.19.42:31263/api/webhook
,IP hòa đoan khẩu nhu yếu tu cải thành nhĩ tự kỷ đích.
Giá dạng ngã môn đích vấn đề tựu giải quyết liễu, mỗi thứ đề giao đại mã tựu hội xúc phát đồng bộ, bất hội tái đẳng na mạn trường đích tam phân chung liễu!