### Apache Airflow version

2.1.3

### Operating System

ContainerOS

### Versions of Apache Airflow Providers

apache-airflow-providers-amazon==2.1.0
apache-airflow-providers-celery==2.0.0
apache-airflow-providers-cncf-kubernetes==2.0.2
apache-airflow-providers-databricks==2.0.1
apache-airflow-providers-docker==2.1.0
apache-airflow-providers-elasticsearch==2.0.2
apache-airflow-providers-ftp==2.0.0
apache-airflow-providers-google==5.0.0
apache-airflow-providers-grpc==2.0.0
apache-airflow-providers-hashicorp==2.0.0
apache-airflow-providers-http==2.0.0
apache-airflow-providers-imap==2.0.0
apache-airflow-providers-microsoft-azure==3.1.0
apache-airflow-providers-mysql==2.1.0
apache-airflow-providers-papermill==2.0.1
apache-airflow-providers-postgres==2.0.0
apache-airflow-providers-redis==2.0.0
apache-airflow-providers-sendgrid==2.0.0
apache-airflow-providers-sftp==2.1.0
apache-airflow-providers-slack==4.0.0
apache-airflow-providers-sqlite==2.0.0
apache-airflow-providers-ssh==2.1.0

### Deployment

Official Apache Airflow Helm Chart

### Deployment details

Official Helm Chart on GKE using CeleryKubernetesExecutor.

### What happened

I'm unable to Run Tasks from the UI when using CeleryKubernetesExecutor. It just shows the error "Only works with the Celery or Kubernetes executors, sorry". 
<img width="1792" alt="Captura de Pantalla 2021-09-22 a la(s) 17 00 30" src="https://user-images.githubusercontent.com/2586758/134413668-5b638941-bb50-44ff-9349-d53326d1f489.png">




### What you expected to happen

It should be able to run Tasks from the UI when using CeleryKubernetesExecutor, as it only is a "selective superset" (based on queue) of both the Celery and Kubernetes executors.

### How to reproduce

1. Run an Airflow instance with the CeleryKubernetes executor.
2. Go to any DAG
3. Select a Task
4. Press the "Run" button.
5. Check the error.

### Anything else

I will append an example PR as a comment.

### Are you willing to submit PR?

- [x] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

airflow/www/views.py
"""
    Create the list of edges needed to construct the Graph view.
    A special case is made if a TaskGroup is immediately upstream/downstream of another
    TaskGroup or task. Two dummy nodes named upstream_join_id and downstream_join_id are
    created for the TaskGroup. Instead of drawing an edge onto every task in the TaskGroup,
    all edges are directed onto the dummy nodes. This is to cut down the number of edges on
    the graph.
    For example: A DAG with TaskGroups group1 and group2:
        group1: task1, task2, task3
        group2: task4, task5, task6
    group2 is downstream of group1:
        group1 >> group2
    Edges to add (This avoids having to create edges between every task in group1 and group2):
        task1 >> downstream_join_id
        task2 >> downstream_join_id
        task3 >> downstream_join_id
        downstream_join_id >> upstream_join_id
        upstream_join_id >> task4
        upstream_join_id >> task5
        upstream_join_id >> task6
    """
    
    edges_to_add = set()
    
    edges_to_skip = set()
    task_group_map = dag.task_group.get_task_group_dict()
    def collect_edges(task_group):