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

Research item: Azure Container Instance - ACI as FaaS backend #117

Closed
alexellis opened this Issue Aug 8, 2017 · 17 comments

Comments

Projects
None yet
5 participants
@alexellis
Copy link
Member

alexellis commented Aug 8, 2017

Item - Research into running FaaS with Azure CNI as a back-end

This may be via the Azure API or through the ACI Kubernetes Connector.

ACI:

https://azure.microsoft.com/en-us/blog/announcing-azure-container-instances/

Kubernetes connector:

https://github.com/Azure/aci-connector-k8s

Container instances have granular billing, public or private IPs and can be deployed to multiple regions easily. No backing VM is necessary either.

@bketelsen

This comment has been minimized.

Copy link

bketelsen commented Aug 8, 2017

Would you want an implementation of the entire infrastructure running on ACI, or just the functions themselves with the controlling parts running elsewhere?

@alexellis

This comment has been minimized.

Copy link
Member

alexellis commented Aug 9, 2017

I'd like to see how this works when using the Kubernetes connector and what the effective cost is. It should (I am guessing) deploy as-is without changes? There are instructions in the faas-netes repo

The second idea is also very interesting - deploying the Gateway onto a Kubernetes cluster and introducing a new external plugin that manages functions via the ACI API.

@alexellis

This comment has been minimized.

Copy link
Member

alexellis commented Sep 7, 2017

Ping @bketelsen

@bketelsen

This comment has been minimized.

Copy link

bketelsen commented Sep 7, 2017

I'm pretty busy until this weekend, is there something specific you want help with? Do you just want to stand up FaaS on ACI with kubernetes?

@JockDaRock

This comment has been minimized.

Copy link
Contributor

JockDaRock commented Sep 8, 2017

I have tried the ACI-connector. Are some bugs on the Azure side that need to be worked out.

Bug 1: You cannot connect ACI services to functions spun up with the ACI-connector. This might be solved by deploying the whole application to ACI, but this runs in to bug 2. https://github.com/Azure/aci-connector-k8s/issues/51

Bug 2: When creating deployments with replicas the ACI-connector node starts spinning up pods for your deployment continually. So instead of 1 pod, you might have 20. https://github.com/Azure/aci-connector-k8s/issues/24

As of right now I have been stalled out on this feature, but I say try it out anyway and keep adding comments to the issue threads ;).

Let me know your thoughts.

@JockDaRock

This comment has been minimized.

Copy link
Contributor

JockDaRock commented Sep 8, 2017

On bug 1. I meant you cannot connect regular k8s services to pods spun up by the ACI-connector node, or vice versa.

@alexellis

This comment has been minimized.

Copy link
Member

alexellis commented Sep 8, 2017

Thanks for the updates @JockDaRock. @bketelsen would love your input on this and if you could try setting things up with ACI.

@alexellis

This comment has been minimized.

Copy link
Member

alexellis commented Sep 28, 2017

Derek add label: hacktoberfest

@open-derek open-derek bot added the hacktoberfest label Sep 28, 2017

@radu-matei

This comment has been minimized.

Copy link

radu-matei commented Oct 20, 2017

@alexellis @JockDaRock - so if I understand correctly, you deployed using the aci-connector and encountered some issues - I know the second bug is now solved as part of https://github.com/Azure/aci-connector-k8s/pull/54

For the first bug I don't think there's a fix (I'm not working on Azure Container Instances, cannot officially speak 😄) - my question, @alexellis - what does it mean if the function pod cannot talk back to the rest of the system?

I will try to deploy later tonight (hopefully) and document the process.

@alexellis

This comment has been minimized.

Copy link
Member

alexellis commented Oct 20, 2017

Good news on the fix and thanks (to team ACI) for stopping by again.

The function should be able to make use of other Kubernetes services as exposed by kubedns, but it's not necessarily a deal-breaker for some workloads. I'd appreciate your input @radu-matei - looking forward to seeing how you get one and maybe you could put together a quick blog or guide too?

@alexellis

This comment has been minimized.

Copy link
Member

alexellis commented Nov 29, 2017

@bketelsen what state is ACI in.. can containers talk to each other yet over private networking?

@JockDaRock

This comment has been minimized.

Copy link
Contributor

JockDaRock commented Nov 30, 2017

On the the issue on https://github.com/Azure/aci-connector-k8s/issues/51, there is someone there that seems to think testing with k8s version 1.8.1 might be worth a try on integrating with the k8s connector for ACI...

@alexellis

This comment has been minimized.

Copy link
Member

alexellis commented Oct 12, 2018

@radu-matei @bketelsen I hear that it may be time to take another look at this issue? "Virtual Node" sounds like it might do what we wanted originally a year ago.

@rbitia

This comment has been minimized.

Copy link

rbitia commented Oct 16, 2018

Hey! What was the summary of blockers? I can give you an updated run down for what's supported today.

@alexellis

This comment has been minimized.

Copy link
Member

alexellis commented Oct 16, 2018

Hi! :)

I believe Jock and maybe one or two others tried to get this working. There was no support for inter-container communication over the network.

Ideally the core components will run on a regular node pool and function Pods will run using ACI / Virtual Node etc. They won't have any public IPs but private and will be accessed through Kubernetes Services.

https://docs.openfaas.com/architecture/gateway/

Does this help?

We have this guide in the MSFT docs if you'd like to spin it up with Helm? https://docs.microsoft.com/en-us/azure/aks/openfaas

Thanks,

Alex

@rbitia

This comment has been minimized.

Copy link

rbitia commented Oct 18, 2018

Hey great! We have "bring your own vnet" for ACI now so open faas should just work :)

@alexellis

This comment has been minimized.

Copy link
Member

alexellis commented Jan 6, 2019

Derek close: inactivity / lack of interest from community.

@derek derek bot closed this Jan 6, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment