6 ms·
I kinda have a hard time understanding what it is ... is it kinda a 'glue' layer between Kubernetes and istio ? Can somebody give us a 2 sentences explanation?
by gdsdfe 8y ago
I kinda have a hard time understanding what it is ... is it kinda a 'glue' layer between Kubernetes and istio ?
Can somebody give us a 2 sentences explanation? please and thank you
- jacques_chester 8y agoYou have source code. You want a simple way to turn it into running functions and apps, with eventing support, with clever routing and rollout capabilities, without lifting a finger. It's an abstraction layer being developed above both of Kubernetes and Istio.
- gdsdfe 8y agoahh so you just worry about your business logic, which will be a bunch of 'functions', and knative will take care of routing, deployment, load etc. ?
- jacques_chester 8y agoI would say that yes, that is a good statement of the vision that the contributors share.
- gdsdfe 8y agoGot it! thank you! It's actually very interesting ...
- mattsoldo 8y agoIt isn't limited to functions. Knative can run containerees, or with a build system take full app code and deploy it as a container.
- gdsdfe 8y agoso it can be anything really ... hmm
- evankanderson 8y agoI think Knative (and the scale to zero in particular) are best suited for request/response or event-delivery workloads. So you wouldn't want to run (for example) memcache or mysql under knative. FaaS and (HTTP application) PaaS are both good matches. I think it's an open question whether a PaaS like Google Dataflow is a good match or not. It will certainly require more planning, but I think it's doable.
- gdsdfe 8y agoYeah but don't forget this is a higher abstraction on top of microservices. I think the big take away here is that if your app falls into the patten of 80% of modern apps (can't remember where is saw that number, don't quote me :) and is split properly you can have all your 'ops' part as configuration.
- djhworld 8y agoYou still need a Kubernetes cluster running though, right?
- aurailious 8y agoThis is what I am trying to figure out too. Is Knative standalone, or is it running inside your K8 cluster, or do you build a K8 cluster and run this in it exclusively?
- gdsdfe 8y agoI think it's mostly pods on your k8 cluster ... see the link to the install guide above
- pas 8y agoIt has software, yes, that of course runs in pods, but .. It's a whole lot of infrastructure to support a PaaS / FaaS workflow. From building and routing/serving/tracing to complex event driven stuff. It's fully k8s native (hence the name, I reckon), and it uses CRDs. Which is basically k8s's DSL for describing anything. Basically a k8s-standard for k8s plugins with schema, validation, schema change management, kubectl support, etc.
- jacques_chester 8y agoKnative installs into a Kubernetes cluster. Knative as it stands is not multi-tenant, so if you need to isolate workloads, you will need distinct Kubernetes clusters.
- gdsdfe 8y agoYes ... from the install guide : "To get started with Knative, you need a Kubernetes cluster." https://github.com/knative/docs/tree/master/install https://github.com/knative/docs/tree/master/install
- evankanderson 8y agoThis is a way to deploy and manage a stateless web application ("function") without needing to get into a bunch of low-level details, and get closer to pay-for-what-you-use.
- gdsdfe 8y agoVery interesting! thanks!
- djhworld 8y ago> get closer to pay-for-what-you-use. How though, won't you need a Kubernetes cluster running?
- jacques_chester 8y agoThe exact economics depend on where the billing boundary falls. For on-prem the economics will probably follow one of central IT budget, showback or chargeback and I expect the case for hugging the curve as tightly as possible is weaker. For cloud providers the boundary is likely to become execution-seconds. As Kubernetes worker nodes become abstracted away this will be the remaining way to track utilisation.
- ryangregg 8y agoOn the small scale, no, it's not pay-for-what-you-use. Imagine though you're an enterprise, running a large K8S cluster with lots of workloads inside. By using Knative and scale-to-zero, now you can pack more lightweight workloads into the same cluster resources, because the pods scale down when they're not actively being used. It gives you (as the cluster operator in your company) the ability to run your cluster the same way serverless works in the cloud.
- rhlsthrm 8y agoSorry, I'm still pretty new to Kubernetes. I am exploring using Serverless Framework + AWS Lambda/GCP Functions to build out a full CRUD-like REST API backend. If I used Knative, would I achieve a similar functionality? Would each "function" (i.e. endpoint) be deployed in a separate container? If it's all in one single (autoscaling) container you still don't acheive full pay-for-what-you-use, right?
- peterwwillis 8y agoCan someone also give us a 20 sentences explanation on how it works, or an example installation? "It does magic" still leaves me wondering if this is worth investigating.
- pas 8y agoit's a PaaS .. heroku for k8s https://github.com/knative/docs/tree/master/serving/samples/source-to-url-go#deploying-the-sample https://github.com/knative/docs/tree/master/serving/samples/...
- bacongobbler 8y agoIt'll be interesting to see the differences from other systems in this space (OpenShift, Deis Workflow). From the samples it appears to be more of a "pull code from github and push to Dockerhub" model than a "push code to the platform and push to an internal registry" that other PaaSes target. https://docs.openshift.com/container-platform/3.3/install_config/registry/index.html https://docs.openshift.com/container-platform/3.3/install_co... https://deis.com/docs/workflow/understanding-workflow/architecture/ https://deis.com/docs/workflow/understanding-workflow/archit... disclaimer: I was one of the core maintainers of Deis Workflow.
- pas 8y agoOh, I miss Deis, but congrats on the MS acquisition. I think looking at build is not interesting, because it seems that knative currently focuses on the serving and events part (some thoughts on this you might find interesting: https://news.ycombinator.com/item?id=17607401 https://news.ycombinator.com/item?id=17607401 ) The repository is just an example. Using an internal repo seems just as easy.
- peterwwillis 8y agoThank you for the link to the samples, they are much more informative. But it still doesn't quite explain it. The samples show that you can make an app, make a container, and make a service config file, and deploy your app to K8s. Yes, we've been able to do that for some time now. This thing is supposed to provide a bunch of advanced features for devs to not have to think about. However, the build repo says this: "While Knative builds are optimized for building, testing, and deploying source code, you are still responsible for developing the corresponding components that: + Retrieve source code from repositories. + Run multiple sequential jobs against a shared filesystem (for example, Install dependencies, Run unit and integration tests). + Build container images. + Push container images to an image registry, or deploy them to a cluster." "While today, a Knative build does not provide a complete standalone CI/CD solution, it does however, provide a lower-level building block that was purposefully designed to enable integration and utilization in larger systems." So as a developer you still have to have all the things you had before, but with extra layers of abstraction now, apparently just to support hybrid cloud installations. The marketing lingo appeals to developers as if it makes all this simple, when in fact it may be more complicated.
- nunez 8y agoBased on the linked GitHub readme, it seems that this allows you to deploy autoscaling apps ready for public consumption without having to worry about defining load balancers, ingress routes, etc. There's a lot of documentation and it's difficult (for me) to completely grok. GitHub readme: https://github.com/knative/docs/blob/master/install/getting-started-knative-app.md https://github.com/knative/docs/blob/master/install/getting-... Example Ruby app: https://github.com/knative/docs/blob/master/serving/samples/helloworld-ruby/README.md https://github.com/knative/docs/blob/master/serving/samples/... While I can see how this greatly simplifies deploying an app onto a Kubernetes cluster, I'm failing to see how this helps for serverless workloads
- evankanderson 8y agoServerless means that you as a developer don't have to manage servers. There's still real computers behind the "serverless". Knative calls the role of the person providing the servers are "operator". Kubernetes is great for operators because it has a lot of common low-level primitives, and lots of choice if you want to pay someone else to be your operator. Knative aims to give a similar great experience to developers if you can convince your operator to install it on top of the kubernetes they already have. In particular, if an operator charges you for container runtime minutes on knative, you're getting close to the pay-per use model of lambda or app engine. Also, as you noted, developers should have fewer concepts they need to grok in order to deploy a knative app compared with kubernetes.
- emilssolmanis 8y agoLooks like Beanstalk for Kube by Google.