[openstack-dev] [all][ironic] Kubernetes-based long running processes
Yuriy Zveryanskyy
yzveryanskyy at mirantis.com
Tue Mar 21 14:22:48 UTC 2017
Hi.
I think to use Mistral with k8s extension for ironic use cases is not
very good idea
because:
- Yes, Mistral can be used for executions of long-running business
processes [1].
But business processes in Mistral are multi-step sets of abstract "jobs"
(tasks) [1],
[2]. For ironic consoles use case long running task is set of OS
processes which can
be started somewhere (host, container) and have all needed networking
access.
- Due to difference mentioned above create long running task in Mistral is
over-complex for ironic use case. We should use additional "workflow"
scripting
layer [3] and Mistral DSL [4]. K8s can be integrated with Mistral via
custom actions
[5] or functions [6], but there is no "pure" API plugins, these
extensions we should
use as part of scripting.
- Mistral can offload business processes to 3rd party services [1], but
main problem
is asynchronous execution: ".. the concept of asynchronous action
assumes that a
result won’t be known at a time when executor is running it" (therefore
is not easy
to get task statuses for example) [7]. This increases complexity of
scripting layer
that mentioned above.
Because of these reasons Mistral-k8s solution for ironic use cases
(typical is consoles)
will be unclear and complex (without any technical arguments) in
comparison with
directly usage of k8s API via client library [8].
[1] https://wiki.openstack.org/wiki/Mistral
[2] https://wiki.openstack.org/wiki/Mistral/Long_Running_Business_Process
[3] https://docs.openstack.org/developer/mistral/terminology/workflows.html
[4] https://docs.openstack.org/developer/mistral/dsl/dsl_v2.html
[5]
https://docs.openstack.org/developer/mistral/developer/creating_custom_action.html
[6]
https://docs.openstack.org/developer/mistral/developer/extending_yaql.html
[7]
https://docs.openstack.org/developer/mistral/developer/asynchronous_actions.html
[8]
https://github.com/openstack/requirements/blob/master/global-requirements.txt#L89
Yuriy Zveryanskyy
On 17.03.17 20:00, Taryma, Joanna wrote:
> Thank you for this explanation, Clint.
> Kuberentes gets more and more popular and it would be great if we could also take advantage of it. There are already projects in Openstack that have a mission that aligns with task scheduling, like Mistral, that could possibly support Kubernetes as a backend and this solution could be adopted by other projects. I’d rather think about enriching an existing common project with k8s support, than starting from scratch.
> I think it’s a good idea to gather cross-project use cases and expectation to come up with a solution that will be adoptable by all the projects that desire to use while still being generic.
>
> WRT Swift use case – I don’t see what was listed there as excluded from Kubernetes usage, as K8S supports also 1 time jobs [0].
>
> Joanna
>
> [0] https://kubernetes.io/docs/concepts/jobs/run-to-completion-finite-workloads/
>
> On 3/16/17, 11:15 AM, "Clint Byrum" <clint at fewbar.com> wrote:
>
> Excerpts from Dean Troyer's message of 2017-03-16 12:19:36 -0500:
> > On Wed, Mar 15, 2017 at 5:28 PM, Taryma, Joanna <joanna.taryma at intel.com> wrote:
> > > I’m reaching out to you to ask if you’re aware of any other use cases that
> > > could leverage such solution. If there’s a need for it in other project, it
> > > may be a good idea to implement this in some sort of a common place.
> >
> > Before implementing something new it would be a good exercise to have
> > a look at the other existing ways to run VMs and containers already in
> > the OpenStack ecosystem. Service VMs are a thing, and projects like
> > Octavia are built around running inside the existing infrastructure.
> > There are a bunch of deployment projects that are also designed
> > specifically to run services with minimal base requirements.
>
> The console access bit Joanna mentioned is special in that it needs to be
> able to reach things like IPMI controllers. So that's not going to really
> be able to run on a service VM easily. It's totally doable (I think we
> could have achieved it with VTEP switches and OVN when I was playing
> with that), but I can understand why a container solution running on
> the same host as the conductor might be more desirable than service VMs.
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
More information about the OpenStack-dev
mailing list