Search code examples
kuberneteskopsargo-workflowsargoproj

Argo Workflow distribution on KOPS cluster


Using KOPS tool, I deployed a cluster with:

  • 1 Master
  • 2 slaves
  • 1 Load Balancer

Now, I am trying to deploy an Argo Workflow, but I don't know the process. Will it install on Node or Master of the k8s cluster I built? How does it work?

Basically, if anyone can describe the functional flow or steps of deploying ARGO work flow on kubernetes, it would be nice. First, I need to understand where is it deployed on Master or Worker Node?


Solution

  • Usually, kops creates Kubernetes cluster with taints on a master node that prevent regular pods scheduling on it.
    Although, there was an issues with some cluster network implementation, and sometimes you are getting a cluster without taints on the master.

    You can change taints on the master node by running the following commands:

    add taints (no pods on master):

    kubectl taint node kube-master node-role.kubernetes.io/master:NoSchedule
    

    remove taints (allow to schedule pods on master):

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

    If you want to know whether the taints are applied to the master node of not, run the following command:

    kubectl get node node-master --export -o yaml
    

    Find a spec: section. In case the taints are present, you should see something like this:

    ...
    spec:
      externalID: node-master
      podCIDR: 192.168.0.0/24
      taints:
      - effect: NoSchedule
        key: node-role.kubernetes.io/master
    ...