Skip to main content
Andre_Sostizzo
Digital Support
Digital Support

Available now an example of Kubernetes environment preparation for QSEoK including deployment steps.

Qlik Sense Enterprise on Kubernetes (QSEoK) has specific environmental requirements which can easily be missed posing a challenge with the new deployment.

Qlik Digital Support has documented steps on an example CentOS Linux system to meet those requirements including the deployment of QSEoK.

You can see this content via the Knowledge Base articles below:

Kubernetes cluster deployment example in preparation to QSEoK deployment
https://support.qlik.com/articles/000101537

Deployment example of Qlik Sense Enterprise on Kubernetes (QSEoK)
https://support.qlik.com/articles/000101649

Please give this post a like if you found it helpful! Also please let us know if you have any questions or leave your feedback in the comments.

 

 

18 Comments
ssamuels
Partner - Creator
Partner - Creator

I'm following the steps as described in the support article "Deployment example of QSEoK" to install Qlik Sense for Kubernetes on a single node K8s cluster for testing. The cluster is deployed with MicroK8s on a Linux EC-instance in AWS with Ubuntu 18.4. The cluster is up and running and I was able to deploy a sample app and access it from outside the cluster. The installation of Qlik Sense with helm was also succesful. After the installation all pods are running as expected.

During installation I used a YAML file to configure the built-in IDP on NodePort 32433 (as described in the support article). After upgrading the Qlik Sense deployment with the "helm upgrade" command I can see the service 'qliksense-nginx-ingress-controller' is listening on port 32443.

I'm having an issue logging into Qlik Sense via the built-in IDP to apply the license. When I navigate to the URL "https://elastic.example:32443" I can see the certificate warning, so the site is reachable, but when I proceed the browser is redirected to "http://elastic.example:32123" and I end up with the message "can't reach this page". I can't figure out where this redirct URL comes from and how to solve this.

Any help would be appreciated.

0 Likes
1,188 Views
Andre_Sostizzo
Digital Support
Digital Support

@ssamuels, thank you for posting your issue.

Edge-Auth is the service listening on 32123 (for authentication/login request). If you have issues with that service the login page will not display.

You can get more detail running the commands below:

kubectl describe service qliksense-edge-auth

kubectl describe pod qliksense-edge-auth

You can also try to kill the specific pod:

kubectl delete pod qliksense-edge-auth-<ID>

where <ID> you can check by running kubectl get pods

1,092 Views
ssamuels
Partner - Creator
Partner - Creator

When I run the command "kubectl describe service qliksense-edge-auth" I can see the service is listening on nodeport 31695, instead of port 32123 that you mention (and the one that is being used in the redirect URL). None of the services is listening on port 32123 in my environment.

I tried deleting the pod qliksense-edge-auth-<ID> because I saw some liveless probe failures in the logs. After recreating the pod the errors are gone, but the issue remains the same.

 

 

 

 

0 Likes
1,042 Views
Andre_Sostizzo
Digital Support
Digital Support

did you try replacing the redirect auth URL with the port 31695 in your browser, and hitting <enter>, to see the behavior?

 

0 Likes
1,013 Views
ssamuels
Partner - Creator
Partner - Creator

Yes I did. Then I get an http 403 error (declined request because endpoint is configured for https only).

992 Views
Andre_Sostizzo
Digital Support
Digital Support

@ssamuels, I see. I am assuming the error looks like this?

{"errors":[{"title":"Received plain HTTP request over endpoint configured for HTTPS only","code":"AUTH-NOT-SECURE","status":"403"}]} 

 Please post the output of "kubectl describe service qliksense-edge-auth" here.

 

0 Likes
973 Views
ssamuels
Partner - Creator
Partner - Creator

Yes, that's exactly the error I'm looking at.

This is the output of "kubectl describe service qliksense-edge-auth":

Name: qliksense-edge-auth
Namespace: default
Labels: app=edge-auth
chart=edge-auth-5.1.6
heritage=Tiller
release=qliksense
Annotations: prometheus.io/port: 8080
prometheus.io/scrape: true
prometheus.io/scrape_high_cardinality: true
Selector: app=edge-auth,release=qliksense
Type: NodePort
IP: 10.152.183.166
Port: qliksense-edge-auth 8080/TCP
TargetPort: 8080/TCP
NodePort: qliksense-edge-auth 31695/TCP
Endpoints: 10.1.1.81:8080
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>

 

0 Likes
577 Views
Andre_Sostizzo
Digital Support
Digital Support

@ssamuels, Thank you for the output.

We see that the OIDC mapping was never setup. Here's an output where oidc port gets configured as specified in the edge-auth's helm charts' value.yaml file.

[root@kube01 ~]# kubectl describe service qliksense-edge-auth
Name: qliksense-edge-auth
Namespace: default
Labels: app=edge-auth
chart=edge-auth-4.22.61
heritage=Tiller
release=qliksense
Annotations: prometheus.io/port: 8080
prometheus.io/scrape: true
prometheus.io/scrape_high_cardinality: true
Selector: app=edge-auth,release=qliksense
Type: NodePort
IP: 10.105.253.117
Port: edge-auth 8080/TCP
TargetPort: 8080/TCP
NodePort: edge-auth 30909/TCP
Endpoints: 10.44.0.4:8080
Port: oidc 32123/TCP
TargetPort: 32123/TCP
NodePort: oidc 32123/TCP
Endpoints: 10.44.0.4:32123
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>

Notice that the edge-auth version stated above (4.22.61) is for the helm qlik chart (deployment) version 1.43.38.

You are running edge-auth 5.1.6 which is for the latest helm qlik chart version 1.50.27. I confirmed that the values.yaml for the edge-auth chart states:

...

oidc:
enabled: false
image:
registry: qlik
## oidc image
repository: simple-oidc-provider
# Tag of the docker image
tag: 0.2.2
## oidc configs
configs:
## oidc port
##
port: 32123

...

Notice oidc: enabled: false.

It is not confirmed why this value was changed by R&D in the latest helm chart deployment. You can try to change the values.yaml file manually, but no guarantees here as there may be other changes that came with this OIDC setting change.

As resolution, you can either implement auth0 as your IdP (see link below), or deploy the prior helm deployment version (1.43.38) which by default has oidc: enabled: true. In order to do so you may use the command below:

helm upgrade qliksense qlik/qliksense -f <filename>.yaml --version 1.43.38

For auth0 IdP setup:

https://support.qlik.com/articles/000100046

 

536 Views
ssamuels
Partner - Creator
Partner - Creator

Hi @Andre_Sostizzo 

Deploying the previous version of the helm chart deployment did the trick! After executing the upgrade command the issue of solved and I'm presented with the login page when navigating to https://elastic.example:32443. Thanks a lot for helping out!

My next challenge will be configuring Azure AD as OIDC Identity Provider.

Best regards,

Steven

 

 

516 Views
ssamuels
Partner - Creator
Partner - Creator

In Qlik Sense Enterprise Cloud I can add OIDC Identity Providers in the Admin console. I was hoping I could do the same in QSEoK, but the option seems to be missing in the UI, so I guess the only option is to configure the IdP settings in the YAML file when deploying Qlik Sense through Helm.

In the online Help there are sample configurations for setting up Auth0, Okta and ADFS as IdP, but unfortunately not for Azure AD. Is this even possible?

496 Views