Thanks @Gyula, I would like to share our use of sql-gateway with the Flink session cluster and I hope that it could help you to have a clearer understanding of our needs :)
As @Yangze mentioned, currently we use flink as an olap platform by the following steps 1. Setup a flink session cluster by flink k8s session with k8s or zk highavailable. 2. Write a Helm chart for Sql-Gateway image and launch multiple gateway instances to submit jobs to the same flink session cluster. As we mentioned in docs[1], we hope that users can easily launch sql-gateway instances in k8s. Does it only need to add a Helm chart for sql-gateway, or should we need to add this feature to the flink operator? Can you help give the conclusion? Thank you very much @Gyula [1] https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/olap_quickstart/ Best, Shammon FY On Sun, Sep 17, 2023 at 2:02 PM Gyula Fóra <gyula.f...@gmail.com> wrote: > Hi! > It sounds pretty easy to deploy the gateway automatically with session > cluster deployments from the operator , but there is a major limitation > currently. The SQL gateway itself doesn't really support any operator > integration so jobs submitted through the SQL gateway would not be > manageable by the operator (they won't show up as session jobs). > > Without that, this is a very strange feature. We would make something much > easier for users that is not well supported by the operator in the first > place. The operator is designed to manage clusters and jobs > (FlinkDeployment / FlinkSessionJob). It would be good to understand if we > could make the SQL Gateway create a FlinkSessionJob / Deployment (that > would require application cluster support) and basically submit the job > through the operator. > > Cheers, > Gyula > > On Sun, Sep 17, 2023 at 1:26 AM Yangze Guo <karma...@gmail.com> wrote: > > > > There would be many different ways of doing this. One gateway per > > session cluster, one gateway shared across different clusters... > > > > Currently, sql gateway cannot be shared across multiple clusters. > > > > > understand the tradeoff and the simplest way of accomplishing this. > > > > I'm not familiar with the Flink operator codebase, it would be > > appreciated if you could elaborate more on the cost of adding this > > feature. I agree that deploying a gateway using the native Kubernetes > > Deployment can be a simple way and straightforward for users. However, > > integrating it into an operator can provide additional benefits and be > > more user-friendly, especially for users who are less familiar with > > Kubernetes. By using an operator, users can benefit from consistent > > version management with the session cluster and upgrade capabilities. > > > > > > Best, > > Yangze Guo > > > > On Fri, Sep 15, 2023 at 5:38 PM Gyula Fóra <gyula.f...@gmail.com> wrote: > > > > > > There would be many different ways of doing this. One gateway per > session > > > cluster, one gateway shared across different clusters... > > > I would not rush to add anything anywhere until we understand the > > tradeoff > > > and the simplest way of accomplishing this. > > > > > > The operator already supports ingresses for session clusters so we > could > > > have a gateway sitting somewhere else simply using it. > > > > > > Gyula > > > > > > On Fri, Sep 15, 2023 at 10:18 AM Yangze Guo <karma...@gmail.com> > wrote: > > > > > > > Thanks for bringing this up, Dongwoo. Flink SQL Gateway is also a key > > > > component for OLAP scenarios. > > > > > > > > @Gyula > > > > How about add sql gateway as an optional component to Session Cluster > > > > Deployments. User can specify the resource / instance number and > ports > > > > of the sql gateway. I think that would help a lot for OLAP and batch > > > > user. > > > > > > > > > > > > Best, > > > > Yangze Guo > > > > > > > > On Fri, Sep 15, 2023 at 3:19 PM ConradJam <jam.gz...@gmail.com> > wrote: > > > > > > > > > > If we start from the crd direction, I think this mode is more like > a > > > > > sidecar of the session cluster, which is submitted to the session > > cluster > > > > > by sending sql commands to the sql gateway. I don't know if my > > statement > > > > is > > > > > accurate. > > > > > > > > > > Xiaolong Wang <xiaolong.w...@smartnews.com.invalid> 于2023年9月15日周五 > > > > 13:27写道: > > > > > > > > > > > Hi, Dongwoo, > > > > > > > > > > > > Since Flink SQL gateway should run upon a Flink session cluster, > I > > > > think > > > > > > it'd be easier to add more fields to the CRD of > `FlinkSessionJob`. > > > > > > > > > > > > e.g. > > > > > > > > > > > > apiVersion: flink.apache.org/v1beta1 > > > > > > kind: FlinkSessionJob > > > > > > metadata: > > > > > > name: sql-gateway > > > > > > spec: > > > > > > sqlGateway: > > > > > > endpoint: "hiveserver2" > > > > > > mode: "streaming" > > > > > > hiveConf: > > > > > > configMap: > > > > > > name: hive-config > > > > > > items: > > > > > > - key: hive-site.xml > > > > > > path: hive-site.xml > > > > > > > > > > > > > > > > > > On Fri, Sep 15, 2023 at 12:56 PM Dongwoo Kim < > > dongwoo7....@gmail.com> > > > > > > wrote: > > > > > > > > > > > > > Hi all, > > > > > > > > > > > > > > *@Gyula* > > > > > > > Thanks for the consideration Gyula. My initial idea for the CR > > was > > > > > > roughly > > > > > > > like below. > > > > > > > I focused on simplifying the setup in k8s environment, but I > > agree > > > > with > > > > > > > your opinion that for the sql gateway > > > > > > > we don't need custom operator logic to handle and most of the > > > > > > requirements > > > > > > > can be met by existing k8s resources. > > > > > > > So maybe helm chart that bundles all resources needed should be > > > > enough. > > > > > > > > > > > > > > apiVersion: flink.apache.org/v1beta1 > > > > > > > kind: FlinkSqlGateway > > > > > > > metadata: > > > > > > > name: flink-sql-gateway-example > > > > > > > namespace: default > > > > > > > spec: > > > > > > > clusterName: flink-session-cluster-example > > > > > > > exposeServiceType: LoadBalancer > > > > > > > flinkSqlGatewayConfiguration: > > > > > > > sql-gateway.endpoint.type: "hiveserver2" > > > > > > > sql-gateway.endpoint.hiveserver2.catalog.name: "hive" > > > > > > > hiveConf: > > > > > > > configMap: > > > > > > > name: hive-config > > > > > > > items: > > > > > > > - key: hive-site.xml > > > > > > > path: hive-site.xml > > > > > > > > > > > > > > > > > > > > > *@xiaolong, @Shammon* > > > > > > > Hi xiaolong and Shammon. > > > > > > > Thanks for taking the time to share. > > > > > > > I'd also like to add my experience with setting up flink sql > > gateway > > > > on > > > > > > > k8s. > > > > > > > Without building a new Docker image, I've added a separate > > container > > > > to > > > > > > the > > > > > > > existing JobManager pod and started the sql gateway using the > > > > > > > "sql-gateway.sh start-foreground" command. > > > > > > > I haven't explored deploying the sql gateway as an independent > > > > deployment > > > > > > > yet, but that's something I'm considering after modifying JM's > > > > address to > > > > > > > desired session cluster. > > > > > > > > > > > > > > Thanks all > > > > > > > > > > > > > > Best > > > > > > > Dongwoo > > > > > > > > > > > > > > 2023년 9월 15일 (금) 오전 11:55, Xiaolong Wang > > > > > > > <xiaolong.w...@smartnews.com.invalid>님이 작성: > > > > > > > > > > > > > > > Hi, Shammon, > > > > > > > > > > > > > > > > Yes, I want to create a Flink SQL-gateway in a job-manager. > > > > > > > > > > > > > > > > Currently, the above script is generally a work-around and > > allows > > > > me to > > > > > > > > start a Flink session job manager with a SQL gateway running > > upon. > > > > > > > > > > > > > > > > I agree that it'd be more elegant that we create a new job > > type and > > > > > > > write a > > > > > > > > script, which is much easier for the user to use (since they > > do not > > > > > > need > > > > > > > to > > > > > > > > build a separate Flink image any more). > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Fri, Sep 15, 2023 at 10:29 AM Shammon FY < > zjur...@gmail.com > > > > > > > wrote: > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > Currently `sql-gateway` can be started with the script > > > > > > `sql-gateway.sh` > > > > > > > > in > > > > > > > > > an existing node, it is more like a simple "standalone" > > node. I > > > > think > > > > > > > > it's > > > > > > > > > valuable if we can do more work to start it in k8s. > > > > > > > > > > > > > > > > > > For xiaolong: > > > > > > > > > Do you want to start a sql-gateway instance in the > jobmanager > > > > pod? I > > > > > > > > think > > > > > > > > > maybe we need a script like `kubernetes-sql-gatewah.sh` to > > start > > > > > > > > > `sql-gateway` pods with a flink image, what do you think? > > > > > > > > > > > > > > > > > > Best, > > > > > > > > > Shammon FY > > > > > > > > > > > > > > > > > > > > > > > > > > > On Fri, Sep 15, 2023 at 10:02 AM Xiaolong Wang > > > > > > > > > <xiaolong.w...@smartnews.com.invalid> wrote: > > > > > > > > > > > > > > > > > > > Hi, I've experiment this feature on K8S recently, here is > > some > > > > of > > > > > > my > > > > > > > > > trial: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 1. Create a new kubernetes-jobmanager.sh script with the > > > > following > > > > > > > > > content > > > > > > > > > > > > > > > > > > > > #!/usr/bin/env bash > > > > > > > > > > $FLINK_HOME/bin/sql-gateway.sh start > > > > > > > > > > $FLINK_HOME/bin/kubernetes-jobmanager1.sh > > kubernetes-session > > > > > > > > > > > > > > > > > > > > 2. Build your own Flink docker image something like this > > > > > > > > > > FROM flink:1.17.1-scala_2.12-java11 > > > > > > > > > > > > > > > > > > > > RUN mv $FLINK_HOME/bin/kubernetes-jobmanager.sh > > > > $FLINK_HOME/bin/ > > > > > > > > > > kubernetes-jobmanager1.sh > > > > > > > > > > COPY ./kubernetes-jobmanager.sh > > > > > > > > $FLINK_HOME/bin/kubernetes-jobmanager.sh > > > > > > > > > > > > > > > > > > > > RUN chmod +x $FLINK_HOME/bin/*.sh > > > > > > > > > > USER flink > > > > > > > > > > > > > > > > > > > > 3. Create a Flink session job with the operator using the > > above > > > > > > > image. > > > > > > > > > > > > > > > > > > > > On Thu, Sep 14, 2023 at 9:49 PM Gyula Fóra < > > > > gyula.f...@gmail.com> > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > Hi! > > > > > > > > > > > > > > > > > > > > > > I don't completely understand what would be a content > of > > such > > > > > > CRD, > > > > > > > > > could > > > > > > > > > > > you give a minimal example how the Flink SQL Gateway CR > > yaml > > > > > > would > > > > > > > > look > > > > > > > > > > > like? > > > > > > > > > > > > > > > > > > > > > > Adding a CRD would mean you need to add some > > > > operator/controller > > > > > > > > logic > > > > > > > > > as > > > > > > > > > > > well. Why not simply use a Deployment / StatefulSet in > > > > > > Kubernetes? > > > > > > > > > > > > > > > > > > > > > > Or a Helm chart if you want to make it more user > > friendly? > > > > > > > > > > > > > > > > > > > > > > Cheers, > > > > > > > > > > > Gyula > > > > > > > > > > > > > > > > > > > > > > On Thu, Sep 14, 2023 at 12:57 PM Dongwoo Kim < > > > > > > > dongwoo7....@gmail.com > > > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > Hi all, > > > > > > > > > > > > > > > > > > > > > > > > I've been working on setting up a flink SQL gateway > in > > a > > > > k8s > > > > > > > > > > environment > > > > > > > > > > > > and it got me thinking — what if we had a CRD for > this? > > > > > > > > > > > > > > > > > > > > > > > > So I have quick questions below. > > > > > > > > > > > > 1. Is there ongoing work to create a CRD for the > Flink > > SQL > > > > > > > Gateway? > > > > > > > > > > > > 2. If not, would the community be open to > considering a > > > > CRD for > > > > > > > > this? > > > > > > > > > > > > > > > > > > > > > > > > I've noticed a growing demand for simplified setup of > > the > > > > flink > > > > > > > sql > > > > > > > > > > > gateway > > > > > > > > > > > > in flink's slack channel. > > > > > > > > > > > > Implementing a CRD could make deployments easier and > > offer > > > > > > better > > > > > > > > > > > > integration with k8s. > > > > > > > > > > > > > > > > > > > > > > > > If this idea is accepted, I'm open to drafting a FLIP > > for > > > > > > further > > > > > > > > > > > > discussion > > > > > > > > > > > > > > > > > > > > > > > > Thanks for your time and looking forward to your > > thoughts! > > > > > > > > > > > > > > > > > > > > > > > > Best regards, > > > > > > > > > > > > Dongwoo > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Best > > > > > > > > > > ConradJam > > > > > > >