Faas: Research item: Azure Container Instance - ACI as FaaS backend

Created on 8 Aug 2017  路  17Comments  路  Source: openfaas/faas

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.

hacktoberfest help wanted skiladvanced

All 17 comments

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

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.

Ping @bketelsen

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?

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.

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

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

Derek add label: hacktoberfest

@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.

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?

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

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...

@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.

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

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

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

Derek close: inactivity / lack of interest from community.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

hotjunfeng picture hotjunfeng  路  5Comments

ndarilek picture ndarilek  路  4Comments

alexellis picture alexellis  路  5Comments

matthewdolman picture matthewdolman  路  5Comments

derailed picture derailed  路  6Comments