argocd创建demo
·
deploymeny.yaml文件详见:
https://gitee.com/hbhe0316/test1234/blob/master/dev/deployment.yaml
service.yaml文件详见:
https://gitee.com/hbhe0316/test1234/blob/master/dev/service.yaml
在K8S MASTER节点创建applicaiton.yaml文件
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: myapp-argo-application
namespace: argocd
spec:
project: default
source:
repoURL: https://gitee.com/hbhe0316/test1234.git
targetRevision: HEAD
path: dev
destination:
server: https://kubernetes.default.svc
namespace: myapp
syncPolicy:
syncOptions:
- CreateNamespace=true
automated:
selfHeal: true
prune: true
参数解释:
syncPolicy : 指定自动同步策略和频率,不配置时需要手动触发同步。
syncOptions : 定义同步方式。
CreateNamespace=true : 如果不存在这个 namespace,就会自动创建它。
automated : 检测到实际状态与期望状态不一致时,采取的同步措施。
selfHeal : 当集群世纪状态不符合期望状态时,自动同步。
prune : 自动同步时,删除 Git 中不存在的资源。
Argo CD 默认情况下每 3 分钟会检测 Git 仓库一次,用于判断应用实际状态是否和 Git 中声明的期望状态一致,如果不一致,状态就转换为 OutOfSync。默认情况下并不会触发更新,除非通过 syncPolicy 配置了自动同步。
path:为gitea的dev目录下的两个文件。
执行命令:
[root@k8s-master 0810]# kubectl create -f application.yaml
application.argoproj.io/myapp-argo-application created
[root@k8s-master 0810]# kubectl get po,svc -n myapp
NAME READY STATUS RESTARTS AGE
pod/myapp-5d9f5b6754-524qn 1/1 Running 0 18s
pod/myapp-5d9f5b6754-gzs6p 1/1 Running 0 18s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/myapp-service ClusterIP 10.101.195.4 <none> 88/TCP 18s
[root@k8s-master 0810]# kubectl edit svc myapp-service -n myapp
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/instance":"myapp-argo-application"},"name":"myapp-service","namespace":"myapp"},"spec":{"ports":[{"port":88,"protocol":"TCP","targetPort":80}],"selector":{"app":"myapp"}}}
creationTimestamp: "2024-08-10T03:30:49Z"
labels:
app.kubernetes.io/instance: myapp-argo-application
name: myapp-service
namespace: myapp
resourceVersion: "62799"
uid: dcf79bd7-2c7a-4dc2-94b5-e0c9aa119d5d
spec:
clusterIP: 10.101.195.4
clusterIPs:
- 10.101.195.4
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- nodePort: 30225
port: 8888
protocol: TCP
targetPort: 80
selector:
app: myapp
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
[root@k8s-master 0810]# kubectl get po,svc -n myapp -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/myapp-5d9f5b6754-524qn 1/1 Running 0 10m 10.244.58.231 k8s-node02 <none> <none>
pod/myapp-5d9f5b6754-gzs6p 1/1 Running 0 10m 10.244.85.221 k8s-node01 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/myapp-service NodePort 10.101.195.4 <none> 8888:30225/TCP 10m app=myapp
访问Nginx


更多推荐
所有评论(0)