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

Proposal: managing edge devices by integraing Edgex Foundry into OpenYurt #236

Merged
merged 1 commit into from
Apr 15, 2021

Conversation

charleszheng44
Copy link
Member

Ⅰ. Describe what this PR does

This PR adds the proposal of integrating EdgeX into OpenYurt

Ⅱ. Does this pull request fix one issue?

NONE

Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.

NONE

Ⅳ. Describe how to verify it

NONE

Ⅴ. Special notes for reviews

NONE

@charleszheng44 charleszheng44 force-pushed the edgex-openyurt branch 6 times, most recently from b1cf200 to 74abc1d Compare March 17, 2021 02:21
@yixingjia
Copy link
Member

The implementation of "Custom Resource Definition(CRD) + EdgeX" proposal is excellent. I like it very much. :)
However, before deep-diving into the implementation detail, I'd like to ask some questions.

1. What is the ultimate goal of the Proposal? It is to integrate EdgeX with OpenYurt or to add Device Management support into OpenYurt?

2. If the main goal is to support Device Management, what is the reason as well as the supporting data to pick up the K8S CRD solution? Is there any other solution to supporting Device Management? what are their Pros and Cons?

3. If we can conclude that CRD is a reasonable solution, do we really have to involve EdgeX to support DeviceMangement? Is there any other solution?

4. EdgeX Device Profile/Device/DeviceProfile concept to manage devices is perfect. But I am not sure whether we do need to depend on EdgeX to implement the feature?

Hi Walnux, Thanks a lot for you comments/suggestions!

Let me try to answer some of the questions with my understanding.

This proposal is try to define a reference implementation on how to management edge device in Kubernetes style.

In K8S scenario we can treat Devices as a kind of resources, so it's quite straight forward to use CRD/CR to represent devices and manage their life cycle.

The overall design of K8S and Open yurt is quite loosely coupled. Technically it can work with any other edge device management solutions. EdgeX will be the first reference implementation because it is more mature compare with other open source IoT edge device management solutions with pretty active community and contributors. The communication between K8S and EdgeX here is through standard RestFull API which is loosely coupled.

If you check the Device manager design logic in OpenYurt you will find out that it is a CRD <-> Command translator.
In the future when you prefer to use other solutions you can easily create another command translator.

Again this proposal is still in the discussion phase, everything can be discussed !

@yixingjia
Copy link
Member

yixingjia commented Mar 17, 2021

Here, actually, the devices can be accessed/operated through OpenYurt Device Manger and EdgeX Command Service. to the EdgeX based application the Device Manger might like a backdoor to operate the devices, so how to sync the users who access/operate device from OpenYurt Device Manger and EdgeX command Service is a problem.
In most cases, the connected devices might be very sensitive resources, and shouldn't be uploaded to the cloud(Api Server) or remote accessed/operated. So using this solution, we have to carefully think about how to isolate and protect these devices resources.

Nice point! the permission of the devices will depend on the native K8s Autha/Authz methodology. Only people with enough privileges will be able to see the device, beside that the master node is not necessarily placed on the public cloud, it can be on the on-prem datacenter or a fog server which depend on your scenario.

Copy link
Member

@yixingjia yixingjia left a comment

Choose a reason for hiding this comment

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

a few comments

@charleszheng44 charleszheng44 force-pushed the edgex-openyurt branch 2 times, most recently from 295d8c3 to 4da2edf Compare April 14, 2021 22:54
@Fei-Guo Fei-Guo merged commit 73d0ab1 into openyurtio:master Apr 15, 2021
MrGirl pushed a commit to MrGirl/openyurt that referenced this pull request Mar 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants