Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doc-734 k8s ingress #1476

Merged
merged 30 commits into from
Aug 18, 2021
Merged

Doc-734 k8s ingress #1476

merged 30 commits into from
Aug 18, 2021

Conversation

kaitlynmichael
Copy link
Contributor

@kaitlynmichael kaitlynmichael commented Aug 5, 2021

DOC-734

Note to reviewers (@yuvallevy2 @laurentdroin) please pay attention to comments that start with "SME QUESTION:" These are areas I need more clarification from a subject matter expert.

STAGING LINK: https://docs.redislabs.com/staging/DOC-734/platforms/kubernetes/tasks/set-up-ingress-controller/

@kaitlynmichael kaitlynmichael added in progress Changes are in progress K8s Kubernetes labels Aug 5, 2021
@kaitlynmichael kaitlynmichael self-assigned this Aug 5, 2021
@laurentdroin
Copy link
Contributor

laurentdroin commented Aug 5, 2021

Every time a Redis Enterprise Database (REDB) is created in a Kubernetes (K8s) environment, a service is created that allows requests to be routed to that database. This type of service is called ClusterIP and can only be accessed from within the K8s cluster.

I am not sure how much detail we want to add here, but the type of service created for each database is not necessarily ClusterIP.
We support 3 types of service for our databases: ClusterIP, Headless (which really is a special type of ClusterIP service), and Load Balancer. Customers can choose what type of service will be created for the cluster databases. They can even choose a combination of 2, or the 3.
By default, the files that we have available on github will create 2 services per database: ClusterIP and Headless (see https://github.com/RedisLabs/redis-enterprise-k8s-docs/blob/master/redis_enterprise_cluster_api.md#servicesriggerconfigurationspec)

Also, an important aspect that we may want to emphasize is that all of this is for accessing databases from outside the Kubernetes cluster. From inside the k8s cluster, services can be accessed directly. No need for ingress or ingress controller.

also

For requests to be routed to the REDB from outside the K8s cluster, you need an ingress controller

That is in case of ClusterIP or Headless service. An Ingress controller should not be needed to access a service of type Load Balancer.

@laurentdroin
Copy link
Contributor

You’ll need a database with the following: <!— SME QUESTION: are the values below necessary?? Why do they need replication enabled?? —>

None of this is needed, all we need is to have a database (and of course, there should be a service for it otherwise the customer has a bigger issue). Now, the service should probably be a ClusterIP service (if the service is Load Balancer, there is probably no point using Ingress).
The database doesn't even need to be an REDB database. It could have been created in the UI or via API (although I think we want to establish the use of REDB as a good practice).

So maybe we just say "have a database and a corresponding ClusterIP service".

@laurentdroin
Copy link
Contributor

the K8s cluster is called ldr-eks-04

Hmmm... "ldr" is my initials. I use it to easily see what resources are mine. I am not sure we want to keep "ldr" references throughout this doc.

@kaitlynmichael kaitlynmichael requested a review from amiramm August 12, 2021 20:36
@kaitlynmichael kaitlynmichael removed the in progress Changes are in progress label Aug 12, 2021
@kaitlynmichael kaitlynmichael changed the title DRAFT Doc-734 k8s ingress Doc-734 k8s ingress Aug 12, 2021
@laurentdroin
Copy link
Contributor

OK, the small stuff first:

  • In the first paragraph, "headless" is in a different style compared to the other services types
  • In the "Create ingress resource", there are 2 step 1.

@laurentdroin
Copy link
Contributor

When HAProxy is used for ingress control, an additional annotation is needed:
kubernetes.io/ingress.class: haproxy

@laurentdroin
Copy link
Contributor

I think we need to clarify the concept of hostname, and it's a bit complicated.
Kaitlyn, maybe we need to discuss this over zoom.

@laurentdroin
Copy link
Contributor

I think we need to explain how to get the CA certificate because I'm not sure customers would know where to get it from.

They can get it from any of the Redis Enterprise pod's redis-enterprise-node container.
A way to get it directly from the kubectl command would be:
kubectl exec -it <pod name> -c redis-enterprise-node -- cat /etc/opt/redislabs/proxy_cert.pem
Customers can event redirect the output to a file. If they redirect the output to a file called "proxy_cert.pem", that will match what is used in the examples (when testing the database connection).

@laurentdroin
Copy link
Contributor

In order to connect to the database, the client needs to support TLS and SNI. I am not sure if this should be in the prerequisites or if we just mention this at the beginning of the "Test your external access " section.

Copy link
Collaborator

@rrelledge rrelledge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I just left a couple of small suggestions.

@laurentdroin
Copy link
Contributor

Just a last note for today to mention that when testing the databases, the port to use will be 443. Pretty much always. This will be clearer on Monday.

kaitlynmichael and others added 5 commits August 16, 2021 13:11
Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>
Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>
Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>
@laurentdroin
Copy link
Contributor

Two more comments:

In step 1 of "create ingress resource", we give a command that contains "-n ingress-controller". I don't know if we can completely assume what namespace the command should be run against, and it may depend on the ingress controller.
"ingress-controller" is typical of HAproxy. For NGINX, the typical namespace will be "ingress-nginx".
But even that depends on how the customer installed their ingress controller. They might have chosen their own namespace name.
So maybe we use "-n " ?

2nd comment: The list of annotations for each controller doesn't look formatted properly. In the screenshots I have, the annotations are not aligned together.

Looks good otherwise.

@kaitlynmichael kaitlynmichael merged commit c072754 into master Aug 18, 2021
@kaitlynmichael kaitlynmichael deleted the DOC-734 branch August 18, 2021 16:52
lanceleonard added a commit that referenced this pull request Aug 31, 2021
* [Urgent] 6.0.20 known limitation - 2 critical bugs (#1492)

* [Urgent] 6.0.20 known limitation - 2 critical bugs

* Update rs-6-0-20-april-2021.md

* Update product-lifecycle.md (#1495)

* Doc-734 k8s ingress  (#1476)

* review feedback for step 1 (#1497)

* CRDB - add known limitation red-61114 (#1498)

* CRDB - add known limitation red-61114

* Update content/rs/release-notes/rs-6-0-20-april-2021.md

Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>

Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>

* Fixes some grammar. (#1499)

* Initial draft (#1500)

* 6.2 compatibility (#1502)

Add RESET & FAILOVER to the list of OSS Redis unsupported commands (starting with Redis 6.2 and Redis Enterprise 6.2.4)

* Breadcrumbs now use LinkTitle (#1501)

* Breadcrumbs now use LinkTitle instead of Title

* Initial draft

* Update and rename rs-6-2-4-september-2021.md to rs-6-2-4-august-2021.md

* Fixing build break.

* More tweaks/fixes.

* Editorial feedback/tweaks

* Even more editorial fixes and tweaks.

* Added missing flag in console sample.

Co-authored-by: Alon Magrafta <50071256+AlonMagrafta@users.noreply.github.com>
Co-authored-by: AnnaRedis <24556041+AnnaRedis@users.noreply.github.com>
Co-authored-by: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com>
Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>
Co-authored-by: Suze Shardlow <SuzeShardlow@users.noreply.github.com>
Co-authored-by: adisht <36517802+adisht@users.noreply.github.com>
lanceleonard added a commit that referenced this pull request Aug 31, 2021
* Updating RS version dropdown and redirects for RS 6.2.x release series (#1452)

* Jira DOC-746: RS - Document INE and new rladmin settings. (#1479)

* Initial draft

* Clarifying and other minor edits.

* Adding missing mtls flag

* Consolidating duplicate sections.  Oops.

* Initial draft of internode encryption article.

* Squashed commit of the following updates 

commit e26f2e90 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Tue Aug 10 2021 09:37:51 GMT-0500 (Central Daylight Time) 

    Ugh.  Tpyo


commit 322e1820 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Mon Aug 09 2021 22:52:07 GMT-0500 (Central Daylight Time) 

    More updates


commit d589f766 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Mon Aug 09 2021 11:41:30 GMT-0500 (Central Daylight Time) 

    Initial draft of changes


commit 46ba9c7a 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Fri Aug 06 2021 14:19:43 GMT-0500 (Central Daylight Time) 

    Merge branch 'master' into content-updates to bring up-to-date with other project (though Fri Aug 6)


commit 0e20399b 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Fri Aug 06 2021 10:38:21 GMT-0500 (Central Daylight Time) 

    Updated terraform IAM template json


commit 5feb8d43 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Fri Aug 06 2021 10:23:00 GMT-0500 (Central Daylight Time) 

    Updated circleci jobs


commit 2a79ccb4 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Aug 03 2021 14:32:43 GMT-0500 (Central Daylight Time) 

    Updated contribution and editing guides


commit a5a66a71 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Aug 03 2021 14:30:22 GMT-0500 (Central Daylight Time) 

    Updated site title


commit 89cfb28c 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Jul 27 2021 17:13:57 GMT-0500 (Central Daylight Time) 

    updated footer


commit 94ae7731 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Jul 27 2021 17:12:44 GMT-0500 (Central Daylight Time) 

    logo


commit c8d1f0c2 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Jul 27 2021 16:34:56 GMT-0500 (Central Daylight Time) 

    README and LICENSE updates

* Squashed commit of the following web updates

commit 9b11ae0b 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Aug 10 2021 10:48:09 GMT-0500 (Central Daylight Time) 

    Updated website.json


commit 3ace752e 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Mon Aug 09 2021 09:08:58 GMT-0500 (Central Daylight Time) 

    Updated robots.txt

* A couple more updates

* Updated search site url

* Updated CircleCI jobs

* Feedback updates

* Adding REST call to rotate certs.

Co-authored-by: Rachel Elledge <rachel.elledge@redislabs.com>

* Jira DOC-802: RS - Update "upgrade existing deployment" article... (#1489)

* Squashed commit of the following updates 

commit e26f2e90 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Tue Aug 10 2021 09:37:51 GMT-0500 (Central Daylight Time) 

    Ugh.  Tpyo


commit 322e1820 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Mon Aug 09 2021 22:52:07 GMT-0500 (Central Daylight Time) 

    More updates


commit d589f766 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Mon Aug 09 2021 11:41:30 GMT-0500 (Central Daylight Time) 

    Initial draft of changes


commit 46ba9c7a 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Fri Aug 06 2021 14:19:43 GMT-0500 (Central Daylight Time) 

    Merge branch 'master' into content-updates to bring up-to-date with other project (though Fri Aug 6)


commit 0e20399b 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Fri Aug 06 2021 10:38:21 GMT-0500 (Central Daylight Time) 

    Updated terraform IAM template json


commit 5feb8d43 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Fri Aug 06 2021 10:23:00 GMT-0500 (Central Daylight Time) 

    Updated circleci jobs


commit 2a79ccb4 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Aug 03 2021 14:32:43 GMT-0500 (Central Daylight Time) 

    Updated contribution and editing guides


commit a5a66a71 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Aug 03 2021 14:30:22 GMT-0500 (Central Daylight Time) 

    Updated site title


commit 89cfb28c 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Jul 27 2021 17:13:57 GMT-0500 (Central Daylight Time) 

    updated footer


commit 94ae7731 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Jul 27 2021 17:12:44 GMT-0500 (Central Daylight Time) 

    logo


commit c8d1f0c2 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Jul 27 2021 16:34:56 GMT-0500 (Central Daylight Time) 

    README and LICENSE updates

* Squashed commit of the following web updates

commit 9b11ae0b 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Aug 10 2021 10:48:09 GMT-0500 (Central Daylight Time) 

    Updated website.json


commit 3ace752e 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Mon Aug 09 2021 09:08:58 GMT-0500 (Central Daylight Time) 

    Updated robots.txt

* A couple more updates

* Updated search site url

* Updated CircleCI jobs

* Logo (#1480)

* Updated CircleCI jobs

* Fixing CircleCI config bug

* Fixing table layout.  (Maybe?) (#1482)

* Fixing table layout.  (Maybe?)

* Adding missing newline

* Adjusting z-index to fix icon overlap issues

* Adding redirect. (#1484)

* Updating css test (#1483)

* Fixing table layout.  (Maybe?)

* Adding missing newline

* Adjusting z-index to fix icon overlap issues

* Updating test rule

* Css fix test (#1485)

* Fixing table layout.  (Maybe?)

* Adding missing newline

* Adjusting z-index to fix icon overlap issues

* Updating test rule

* Varying the test

* Doc 851 log-collector script instructions (#1486)

* Fixed incorrect GTM container and deduped the GA scripts (#1487)

* Fixed incorrect GTM ID and deduped GA scripts

* Added purge site cache step to CircleCI deploy jobs (#1488)

* Initial draft of upgrade updates.

* Editoiral fixes/updates.

Co-authored-by: Rachel Elledge <rachel.elledge@redislabs.com>
Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>
Co-authored-by: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com>

* Jira DOC-858: Glossary: Add CRDB and headings. (#1490)

* Initial draft of upgrade updates.

* Editoiral fixes/updates.

* Adding CRDB and headings.

* Verify comment regarding node upgrade failure

Alon, is the comment regarding node upgrade failure in case of manually updating SSL - still relevant?

* RS: Release 6.2.4 docs: Incorporating latest feedback ahead of release. (#1511)

* Incorporating latest feedback ahead of release.

* Sort tables alphabetically.

* Updating RS version dropdown for RS 6.2.x release series (#1510)

* Jira DOC-756: RS 6.2.4 Release notes (#1506)

* [Urgent] 6.0.20 known limitation - 2 critical bugs (#1492)

* [Urgent] 6.0.20 known limitation - 2 critical bugs

* Update rs-6-0-20-april-2021.md

* Update product-lifecycle.md (#1495)

* Doc-734 k8s ingress  (#1476)

* review feedback for step 1 (#1497)

* CRDB - add known limitation red-61114 (#1498)

* CRDB - add known limitation red-61114

* Update content/rs/release-notes/rs-6-0-20-april-2021.md

Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>

Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>

* Fixes some grammar. (#1499)

* Initial draft (#1500)

* 6.2 compatibility (#1502)

Add RESET & FAILOVER to the list of OSS Redis unsupported commands (starting with Redis 6.2 and Redis Enterprise 6.2.4)

* Breadcrumbs now use LinkTitle (#1501)

* Breadcrumbs now use LinkTitle instead of Title

* Initial draft

* Update and rename rs-6-2-4-september-2021.md to rs-6-2-4-august-2021.md

* Fixing build break.

* More tweaks/fixes.

* Editorial feedback/tweaks

* Even more editorial fixes and tweaks.

* Added missing flag in console sample.

Co-authored-by: Alon Magrafta <50071256+AlonMagrafta@users.noreply.github.com>
Co-authored-by: AnnaRedis <24556041+AnnaRedis@users.noreply.github.com>
Co-authored-by: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com>
Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>
Co-authored-by: Suze Shardlow <SuzeShardlow@users.noreply.github.com>
Co-authored-by: adisht <36517802+adisht@users.noreply.github.com>

* RS Update 6.2.4 docs: Additional fixes and "tpyos" (#1512)

* Incorporating latest feedback ahead of release.

* Sort tables alphabetically.

* Even more feedback updates.

Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>
Co-authored-by: Rachel Elledge <rachel.elledge@redislabs.com>
Co-authored-by: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com>
Co-authored-by: adisht <36517802+adisht@users.noreply.github.com>
Co-authored-by: Alon Magrafta <50071256+AlonMagrafta@users.noreply.github.com>
Co-authored-by: AnnaRedis <24556041+AnnaRedis@users.noreply.github.com>
Co-authored-by: Suze Shardlow <SuzeShardlow@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
K8s Kubernetes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants