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

ingress: update nodepool ingress proposal #645

Merged
merged 1 commit into from
Dec 20, 2021

Conversation

zzguang
Copy link
Member

@zzguang zzguang commented Dec 2, 2021

Signed-off-by: zhenggu1 zhengguang.zhang@intel.com

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug
/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage
/sig storage

What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?


other Note

@openyurt-bot
Copy link
Collaborator

@zzguang: GitHub didn't allow me to assign the following users: your_reviewer.

Note that only openyurtio members, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time.
For more information please see the contributor guide

In response to this:

Signed-off-by: zhenggu1 zhengguang.zhang@intel.com

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug
/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage
/sig storage

What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?


other Note

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openyurt-bot openyurt-bot added the size/L size/L: 100-499 label Dec 2, 2021
@zzguang
Copy link
Member Author

zzguang commented Dec 2, 2021

/assign @Fei-Guo @rambohe-ch @kadisi

By evaluating all the alternatives above, we think Yurthub naturally can take the responsibility to filter
the data between Cloud and Edge, so we prefer to Solution 5 currently, thanks @wenjun93 for his great
suggestions about this proposal, any other suggestions will also be appreciated, if no different opinions,
we will follow Solution 5 to implement the feature.
Copy link
Member

Choose a reason for hiding this comment

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

solution 5, agree +1

will be divided into 2 parts: one part is deployed on the Cloud side focusing on admission webhook, the other part
is deployed to NodePool focusing on service proxy and load balancer. These 2 parts can work collaboratively without
any conflict by setting the different startup parameters.
- A new NodePool binding namespace will be created when a NodePool ingress is enabled, then all the nginx ingress
Copy link
Member

Choose a reason for hiding this comment

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

A new namespace per NodePool? a lot of new namespaces maybe created.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, nginx ingress controller will deploy several components (RBAC/deployment/service/configmap/job/...) in the cluster, if all the related components of different NodePools are deployed in one namespace(e.g. kube-system):
1). We need to define the naming rule to differentiate them
2). Even we can differentiate them by different names, it's not very clear to users
So I suggest to create a namespace per pool for all the related components, besides, I think maybe it can be reused by other features(e.g. CoreDNS) in future.

Copy link
Member

Choose a reason for hiding this comment

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

@zzguang ok, i got it. we may also discuss this point in the next community meeting.

Copy link
Member Author

Choose a reason for hiding this comment

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

Okay, thanks!

}
```
Some other details about the design:
- The `YurtIngress` CR should be singleton CR which means there should be only one instance in the cluster,
Copy link
Member

Choose a reason for hiding this comment

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

Only one CR can be created for the entire cluster, losing the meaning of CRD。

Copy link
Member Author

Choose a reason for hiding this comment

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

If we want to operate mutli nodepools ingress simultaneously, it seems we should ensure the CR is singleton to avoid conflicts from different CRs for a same NodePool ingress. Any other suggestions will also be appreciated.

@hhstu
Copy link
Member

hhstu commented Dec 8, 2021

建议还是把 ingress-controller 的镜像爆漏出来吧,毕竟我们更喜欢用 traefik。 而担心用户配置的版本和 k8s 不匹配所以不爆漏参数,这个理由不够充分(想要自定义 ingress-controller 的镜像的人本身应该对k8s 就很熟悉了)。理想还是暴漏参数并给予默认值 @zzguang

@zzguang
Copy link
Member Author

zzguang commented Dec 8, 2021

@zzguang zzguang closed this Dec 8, 2021
@zzguang zzguang reopened this Dec 8, 2021
@zzguang
Copy link
Member Author

zzguang commented Dec 8, 2021

建议还是把 ingress-controller 的镜像爆漏出来吧,毕竟我们更喜欢用 traefik。 而担心用户配置的版本和 k8s 不匹配所以不爆漏参数,这个理由不够充分(想要自定义 ingress-controller 的镜像的人本身应该对k8s 就很熟悉了)。理想还是暴漏参数并给予默认值 @zzguang

The current YurtIngress solution is based on Nginx ingress controller and doesn't support traefik yet. We think the users care more about the ingress feature itself instead of the ingress controller, so the YurtIngress focus on providing ingress capability for NodePools, and only the basic APIs are exposed at current stage, we can extend other APIs in future according to users requirements.

@zzguang zzguang force-pushed the dev branch 3 times, most recently from d70903d to b37f332 Compare December 14, 2021 07:56
Signed-off-by: zhenggu1 <zhengguang.zhang@intel.com>
@rambohe-ch
Copy link
Member

/lgtm
/approve

@openyurt-bot openyurt-bot added the lgtm lgtm label Dec 20, 2021
@openyurt-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: rambohe-ch, zzguang

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openyurt-bot openyurt-bot added the approved approved label Dec 20, 2021
@openyurt-bot openyurt-bot merged commit 02abb91 into openyurtio:master Dec 20, 2021
zzguang referenced this pull request in zzguang/openyurt Jan 23, 2022
Signed-off-by: zhenggu1 <zhengguang.zhang@intel.com>
@zzguang zzguang mentioned this pull request Jan 23, 2022
6 tasks
MrGirl pushed a commit to MrGirl/openyurt that referenced this pull request Mar 29, 2022
Signed-off-by: zhenggu1 <zhengguang.zhang@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved approved lgtm lgtm size/L size/L: 100-499
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants