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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐