Argo快速安装与使用

Argo(https://argoproj.github.io/projects/argo) 项目是一组 Kubernetes 原生工具集合,用于运行和管理 Kubernetes 上的做业和应用程序。Argo 提供了一种在 Kubernetes 上建立工做和应用程序的三种计算模式 – 服务模式、工做流模式和基于事件的模式 – 的简单组合方式。全部的 Argo 工具都实现为控制器和自定义资源。node

快速安装

Linux

下载客户端,经过 curl,以下:linux

# Download the binary
curl -LO https://github.com/argoproj/argo/releases/download/v3.0.0-rc3/argo-linux-amd64.gz

# Unzip
gunzip argo-linux-amd64.gz

# Make binary executable
chmod +x argo-linux-amd64

# Move binary to path
mv ./argo-linux-amd64 /usr/local/bin/argo

# Test installation
argo version

Argo Controller服务安装

kubectl create namespace argo
kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo/v3.0.0-rc3/manifests/install.yaml

开启节点部署pod:nginx

安装完后,使用 kubectl get pod -n argo发现始终处于pending状态,须要开启master节点的任务部署。git

kubectl taint nodes --all node-role.kubernetes.io/master-

运行测试

运行示例的workflow:github

argo submit -n argo --watch https://raw.githubusercontent.com/argoproj/argo-workflows/master/examples/hello-world.yaml
argo list -n argo
argo get -n argo @latest
argo logs -n argo @latest

 查看UI:api

  • 使用 port-forward 来转发端口:
kubectl -n argo port-forward deployment/argo-server 2746:2746

用户界面可访问 http://localhost:2746session

  • 使用NodePort:

使用kubectl edit deployment/argo-server -n argo,参照以下nginx-service.yaml,将type改成NodePort,并添加nodePort端口。app

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: NodePort
  sessionAffinity: ClientIP
  selector:
    app: nginx
  ports:
    - port: 80
      nodePort: 30080
  • kind:Service表明是一个服务
  • type:NodePort k8s将会在每一个Node上打开一个端口而且每一个Node的端口都是同样的,经过<NodeIP>:NodePort的方式Kubernetes集群外部的程序能够访问Service。
  • selector:哪一个服务须要暴露
  • port:service暴露的端口
  • TargetPort:pod的端口
  • nodePort:对外暴露的端口,不设置会默认分配,范围:30000-32767
  • 转发逻辑是:
    <NodeIP>:<nodeport> => <ServiceVIP>:<port>=> <PodIP>:<targetport>

在相应节点上使用http://<NodeIP>:<nodeport>就能够访问服务了。curl

相关文章
相关标签/搜索