networkservicemesh / deployments-k8s

Apache License 2.0
42 stars 34 forks source link

There is no documentation or quick-start guides for new folks #10412

Open 316953425 opened 11 months ago

316953425 commented 11 months ago

Please switch to Preview and select one of the following links depending on your use-case:

Once switched to the correct template, keep in mind that switching templates will remove all already entered data within this issue.

Thank you for reaching out!

glazychev-art commented 11 months ago

Hello @316953425 , Yes we agree there is some lack of documentation especially to bootstrap and start working on NSM in very beginning for new members and we are working on this.

For example, recently we added a start point for documentation to the site: https://networkservicemesh.io/docs/concepts/features/

We are planning a stage of resolving questions from the community (from November 28 to December 5). We really value active community members, so we will definitely consider your questions soon.

Could you please help us and point out the highest-priority ones?

316953425 commented 11 months ago

Hi,glazychev-art thanks for you reply I think the nsm project involves great ideas. It can be installed and used without any modification to the k8s environment. It is somewhat similar to a bypass system. First of all, we should describe the overall design idea of our nsm project and how each component interacts with each other. For example, how the data packets sent by nsc are passed to nse through forwarder, so that users can have a clear understanding of nsm macroscopically.For example: how the kernel interface and memif interface we mentioned work, and what are the differences between them?

Secondly, I think we should provide examples: https://github.com/networkservicemesh/deployments-k8s/tree/v1.6.1/examples/basic and https://github.com/networkservicemesh/deployments-k8s/tree/ v1.6.1/examples/features adds some explanations on how it works, rather than simply how to install it. For example, I installed vl3-basc, nse-composition and policy-based-routing in my local environment. But I don’t know how they work, which will prevent me from making changes according to my own actual situation based on some of the basic configurations we provide, such as: https://github.com/networkservicemesh/deployments-k8s/issues/10319 https://github.com/networkservicemesh/deployments-k8s/issues/10378

Again, we should provide detailed instructions and steps on how to make your own nsc and nse images, which will help users develop according to their own scenarios and enrich our community. The above are issues that I think we should solve as soon as possible

glazychev-art commented 11 months ago

Thanks for the detailed information. We have created issues for the site and deployments-k8s repositories improvement:

ETA ~ 2w

Also, we'll respond soon to other questions.

Could we also rename the ticket to fit recommendations from the GitHub https://docs.github.com/en/site-policy/github-terms/github-community-code-of-conduct#what-is-not-allowed?

For example, we may rename it to: "There is no documentation or quick-start guides for new folks."

316953425 commented 11 months ago

ETA ~ 2w

OK,thanks for you reply

316953425 commented 11 months ago

hi @glazychev-art Have we recently updated the documentation regarding any of my previous questions? Thank you very much.

I think the nsm project involves great ideas. It can be installed and used without any modification to the k8s environment. It is somewhat similar to a bypass system. First of all, we should describe the overall design idea of our nsm project and how each component interacts with each other. For example, how the data packets sent by nsc are passed to nse through forwarder, so that users can have a clear understanding of nsm macroscopically.For example: how the kernel interface and memif interface we mentioned work, and what are the differences between them? Secondly, I think we should provide examples: https://github.com/networkservicemesh/deployments-k8s/tree/v1.6.1/examples/basic and https://github.com/networkservicemesh/deployments-k8s/tree/ v1.6.1/examples/features adds some explanations on how it works, rather than simply how to install it. For example, I installed vl3-basc, nse-composition and policy-based-routing in my local environment. But I don’t know how they work, which will prevent me from making changes according to my own actual situation based on some of the basic configurations we provide, such as: https://github.com/networkservicemesh/deployments-k8s/issues/10319 https://github.com/networkservicemesh/deployments-k8s/issues/10378 Again, we should provide detailed instructions and steps on how to make your own nsc and nse images, which will help users develop according to their own scenarios and enrich our community.

glazychev-art commented 11 months ago

Hi @316953425 , These issues are still in progress: https://github.com/networkservicemesh/site/issues/262 https://github.com/networkservicemesh/deployments-k8s/issues/10487

You can take a look at: https://github.com/networkservicemesh/site/pull/265 https://github.com/networkservicemesh/site/pull/264 https://github.com/networkservicemesh/deployments-k8s/issues/10487#issuecomment-1833380783

316953425 commented 11 months ago

hi @glazychev-art Will you write some introductory documents for development recently? Let people who are unfamiliar with k8s and go deepen their understanding of nsm and learn how to do secondary development based on nsm. This is very important for me and my company to use nsm. I still don’t know how to develop nsm. Can you help us and give you something to refer to for getting started? Thank you very much.

glazychev-art commented 11 months ago

Hi @316953425 , We’ve been working on documentation improvement - we’ve added a high-level description of the NSM components to the site: https://networkservicemesh.io/docs/concepts/components_description

Currently, NSM mostly operates in the k8s space. For NSM configuration you can simply use the commands from this repository: https://github.com/networkservicemesh/deployments-k8s Could you please clarify what difficulties you faced when installing NSM on k8s cluster?

316953425 commented 11 months ago

hi @glazychev-art I don't have any problems with the installation now, but I have some problems with learning the source code. For example: https://github.com/networkservicemesh/cmd-nsc/blob/main/main.go https://github.com/networkservicemesh/cmd-nsc-init/blob/main/main.go https://github.com/networkservicemesh/cmd-nse-icmp-responder/blob/main/main.go Can you talk about these codes in detail and how to develop them according to my own needs? It is best to give some introductory code examples.The code in the link gives me a feeling that I don’t know where to start.

my requirement:

1: When I deploy the Kernel2Ethernet2Kernel example, the ip address of nsc's interface nsm-1 is prefixed with 32 bits. I hope that the ip address prefix of nsm-1 is 24 bits, so that when there are two nsc, nsc1 can pass nsm-1 ping nsc2, nse acts as a router,the network topology is as follows:

1701919256208

When I use the ip command to configure an ip with a prefix of 24 on the nsm-1 interface of nsc After a while, this IP disappeared. I don’t know why this happened. Can you tell me?

2:I hope that the network card kernel2eth-1d8c created by nsm for nse can be accessed by mobile apps outside k8s. My environment allows kernel2eth-1d8c to be configured as a internet IP address and forward.yaml without hostNetwork: true

If the above two requirements are difficult to implement in code, is there any other way to achieve similar functions?

Thank you.

Could you please clarify what difficulties you faced when installing NSM on k8s cluster?

glazychev-art commented 11 months ago

Documentation for creating your own NSM applications is in progress: https://github.com/networkservicemesh/site/issues/261

Regarding your requirements:

  1. You definitely need to take a look at vL3-examples: https://github.com/networkservicemesh/deployments-k8s/tree/v1.11.1/examples/features/vl3-basic In this example, the vL3 endpoint actually acts as a router, and alpine-1 can ping alpine-2. To simplify, you can only deploy one vL3 endpoint (change this value to 1)
  2. Could you please tell more about your use-case? Is it possible to provide a diagram?
316953425 commented 11 months ago
  1. You definitely need to take a look at vL3-examples: https://github.com/networkservicemesh/deployments-k8s/tree/v1.11.1/examples/features/vl3-basic In this example, the vL3 endpoint actually acts as a router, and alpine-1 can ping alpine-2. To simplify, you can only deploy one vL3 endpoint (change this value to 1)

hi @glazychev-art Your reply is very useful to me vl3 is a very good example, but it seems that it does not support dual stack now. Will it support dual stack in the future? If we plan to support dual stack in the future, how long will it take to go online?

316953425 commented 11 months ago

hi @glazychev-art

  1. Could you please tell more about your use-case? Is it possible to provide a diagram? 1701947456472

Do not use the interface provided by the cni component because we want to use nsm completely as our data plane Is there any way we can provide a nsm-external interface for internet apps to access?

glazychev-art commented 11 months ago
  1. We have created an issue to add vL3 dual stack support: https://github.com/networkservicemesh/cmd-nse-vl3-vpp/issues/261 We will add it to backlog for the next release

  2. Thanks. Do you have an access to the user-app to configure its environment?

316953425 commented 11 months ago

2. Do you have an access to the user-app to configure its environment?

hi @glazychev-art Normally I don't have the access to configure the app environment thanks

glazychev-art commented 11 months ago

I think you should also look at this example: https://github.com/networkservicemesh/deployments-k8s/tree/v1.11.1/examples/features/vl3-lb