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" <cl...@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.tar...@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-requ...@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-requ...@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-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev