Moving the blog to mkdocs (#4298)
* migrating blog to mkdocs * automation * linting * typo * rebase * adding quickstart blog * toc formatting * typo
|
@ -6,6 +6,10 @@ __pycache__
|
|||
hack/__pycache__
|
||||
/site/
|
||||
/temp/
|
||||
/temp-blog/
|
||||
/blog/site/
|
||||
/blog/overrides/
|
||||
/blog/docs/stylesheets/
|
||||
/node_modules/
|
||||
venv/
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
# README
|
||||
|
||||
All information about contributing to the Knative documentation has been moved
|
||||
into a single location: [Knative contributor's guide](../docs/help/contributor/README.md)
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
title: "Knative blog"
|
||||
linkTitle: "Blog"
|
||||
type: "blog"
|
||||
---
|
|
@ -1,139 +0,0 @@
|
|||
---
|
||||
title: "Knative v0.3 Autoscaling — A Love Story"
|
||||
linkTitle: "Knative v0.3 Autoscaling"
|
||||
date: 2019-03-27
|
||||
description: "New options in Knative v0.3 for customizing the autoscaling subsystem."
|
||||
type: "blog"
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<article class="h-entry">
|
||||
<section data-field="subtitle" class="p-summary">
|
||||
Scaling in the Knative v0.3 release includes new options for customizing the autoscaling subsystem. From a batteries-included…
|
||||
</section>
|
||||
<section data-field="body" class="e-content">
|
||||
<section name="f67c" class="section section--body section--first section--last">
|
||||
<div class="section-divider">
|
||||
<hr class="section-divider">
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<div class="section-inner sectionLayout--insetColumn">
|
||||
<h3 name="1b46" id="1b46" class="graf graf--h3 graf--leading graf--title">Knative v0.3 Autoscaling — A Love Story</h3>
|
||||
<p name="9627" id="9627" class="graf graf--p graf-after--h3">Scaling in the Knative v0.3 release includes new options for customizing the autoscaling subsystem. From a batteries-included, scale-to-zero default, to an ability to replace the autoscaling system entirely, and everything in between. PodAutoscaler, the new custom resource in Knative, provides an extension and control point with which to configure your application.</p>
|
||||
<p name="045a" id="045a" class="graf graf--p graf-after--p">To illustrate these options, let’s walk through the evolution of a Web application from inception to complex autoscaling. We promise, “Knative Autoscaling will grow old with you.”</p>
|
||||
<h3 name="2645" id="2645" class="graf graf--h3 graf-after--p">I just wanna keep it simple</h3>
|
||||
<p name="e70a" id="e70a" class="graf graf--p graf-after--h3">One morning, you sit bolt upright in bed struck by the realization that what people really want… is love. You write a quick Web application to apply a heart-shaped watermark to any given image in just the right place. Since you’re a savvy, modern application developer, you drop it in a container and spin it up on a Knative Service on GKE with `gcloud run deploy — image gcr.io/joe-does-knative/love`.</p>
|
||||
<p name="55ba" id="55ba" class="graf graf--p graf-after--p">This is what your Knative Service looks like:</p>
|
||||
<figure name="986d" id="986d" class="graf graf--figure graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 334px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-width="1574" data-height="752" src="../../../../articles/images/1_F-mOzMbo-Yy2XWTSgJkfQA.png">
|
||||
</div>
|
||||
</figure>
|
||||
</figure>
|
||||
<p name="a160" id="a160" class="graf graf--p graf-after--figure">You show it to your BFF and they post it on Hacker News. Voila, you’re on the front page of the hacker’s Internet! HN tries to give you the hug-of-death, but your application and cluster scales up to handle 1000 op/s of traffic seamlessly. After a while, the excitement dies down and your service is getting 1 or 2 requests per hour. Luckily, Knative scales to zero Pods when not in use, so you don’t spend money running an idle process. And you never changed anything after the initial deployment! That was simple.</p>
|
||||
<figure name="75df" id="75df" class="graf graf--figure graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 520px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-image-id="gopher" data-width="800" data-height="594" src="../../../../articles/images/gopher.png">
|
||||
</div>
|
||||
</figure>
|
||||
<figcaption>
|
||||
<small>Original image: <a href="https://cheezburger.com/7892518656/gopher-love">https://cheezburger.com/7892518656/gopher-love</a>
|
||||
</small>
|
||||
</figcaption>
|
||||
<h3 name="cc2e" id="cc2e" class="graf graf--h3 graf-after--figure">Please don’t go away</h3>
|
||||
<p name="dc4d" id="dc4d" class="graf graf--p graf-after--h3">Several weeks later, lightning strikes again and you realize… “I could make money doing this”. Clearly people enjoyed the heart-shaped watermarks. Maybe you could let people use your service to watermark images on their entire website! Adding a quick in-memory cache in front of your Ruby script (yeah, it’s Ruby) you redeploy and then start advertising your product as a general image-processing service. Things are going well, but you quickly realize that your traffic is unpredictable — it bursts a lot. And when the service scales to 0 Pods and later the traffic resumes, you spend the first few minutes building up the cache again, which makes request latency a little too high. So you decide to add an annotation to your Knative Service’s Revision template to maintain at least 2 Pods at all times.</p>
|
||||
<p name="1828" id="1828" class="graf graf--p graf-after--p">This is what your Knative Service looks like now:</p>
|
||||
<figure name="cb2d" id="cb2d" class="graf graf--figure graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 425px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-width="1578" data-height="958" src="../../../../articles/images/1_BkMXQfMrRERP_n04_C7geQ.png">
|
||||
</div>
|
||||
</figure>
|
||||
<p name="c288" id="c288" class="graf graf--p graf-after--figure">Things aren’t scaling to zero. But that’s fine because you’re making a little money from the venture.</p>
|
||||
<h3 name="6915" id="6915" class="graf graf--h3 graf-after--p">Things are heating up</h3>
|
||||
<p name="8920" id="8920" class="graf graf--p graf-after--h3">Woah! Traffic is starting to ramp up. You’re averaging about 500 op/s and running between 10 and 50 Pods depending on the time of day. You’ve noticed that this job is mostly CPU-bound and you’re not utilizing all your resources as efficiently as you could. So you make some adjustments to the default autoscaling target:</p>
|
||||
<figure name="51a1" id="51a1" class="graf graf--figure graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 175px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-width="1520" data-height="380" src="../../../../articles/images/1_O6ZSdCeotT7J4zSbDNIsYw.png">
|
||||
</div>
|
||||
</figure>
|
||||
<p name="68f8" id="68f8" class="graf graf--p graf-after--figure">But eventually you conclude that you just need to scale on CPU to keep your machines hot. So you choose a different Knative autoscaling class entirely. The class annotation will tell Knative to use a different PodAutoscaler controller implementation, kinda like Kubernetes Ingress.</p>
|
||||
<p name="cdaa" id="cdaa" class="graf graf--p graf-after--p">Here is your Knative Service now:</p>
|
||||
<figure name="1d64" id="1d64" class="graf graf--figure graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 378px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-width="2010" data-height="1084" src="../../../../articles/images/1_fSxikLtB7TNsV-6Y3u5g2w.png">
|
||||
</div>
|
||||
</figure>
|
||||
<p name="3827" id="3827" class="graf graf--p graf-after--figure">Running at 60% CPU consistently you’re actually starting to make more money than you’re spending! So you quit your day job to pursue heart-shaped watermarking full time.</p>
|
||||
<h3 name="cfd7" id="cfd7" class="graf graf--h3 graf-after--p">Let’s get serious</h3>
|
||||
<p name="5397" id="5397" class="graf graf--p graf-after--h3">Things are getting complicated. Seeking professional help, you hire Dr. Mark to help you run your service operations. One of the first things he implements is rollout mode for your service. No more leaping before you look!</p>
|
||||
<figure name="3d05" id="3d05" class="graf graf--figure graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 462px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-width="2000" data-height="1320" src="../../../../articles/images/1_znzl9nGKIif51YRwmBw_BA.png">
|
||||
</div>
|
||||
</figure>
|
||||
<p name="d2e5" id="d2e5" class="graf graf--p graf-after--figure">Things are smooth sailing with Dr. Mark at the helm! As the weeks roll on, New Year’s Eve approaches and you start seeing non-linear growth in your metrics. A quick consultation with Dr. Mark confirms your worst fears. People go crazy sending each other pictures with hearts on New Year’s Eve. And they do it <strong class="markup--strong markup--p-strong">all at the same time</strong> like they are coordinating a DDOS attack of love. You’re going to need a plan.</p>
|
||||
<p name="eb80" id="eb80" class="graf graf--p graf-after--p">Luckily, Dr. Mark has been doing his reading in the Knative Serving release notes and begins experimenting with editing the PodAutoscaler on pre-existing Knative Revisions. The PodAutoscaler is where Knative keeps its autoscaling state and configuration for a Knative Revision. And unlike the Knative Revision, it’s mutable (on purpose). You make a plan to ramp up capacity slightly ahead of traffic as it builds to each NYE event across the globe (yeah, it happens 24 times!)</p>
|
||||
<figure name="2941" id="2941" class="graf graf--figure graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 303px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-width="2360" data-height="1022" src="../../../../articles/images/1_OwJCCIaSFFSE1Rv6ZPuTBQ.png">
|
||||
</div>
|
||||
</figure>
|
||||
<p name="0f7a" id="0f7a" class="graf graf--p graf-after--figure">Over the course of the evening, New Year’s marches from timezone to timezone. You see a few minutes of errors on the first NYE event because the CPU target of 60% is too high. But after you adjust it down to 40% for the next event, it’s smooth sailing for the rest of the evening. Hooray! 🎉</p>
|
||||
<h3 name="45d7" id="45d7" class="graf graf--h3 graf-after--p">You’re so special</h3>
|
||||
<p name="f604" id="f604" class="graf graf--p graf-after--h3">It’s been a full year and things have been crazy! You’ve done some deep integrations with several major image hosting websites and they are driving like 80% of your traffic and revenue now. With a little time on your hands, you start analyzing your autoscaling statistics. You realize that traffic observed by your upstream referrers almost <strong class="markup--strong markup--p-strong">perfectly</strong> predicts your traffic patterns. And they can give you those metrics through your API integration!</p>
|
||||
<p name="b6dd" id="b6dd" class="graf graf--p graf-after--p">But you have implemented your CI/CD pipeline to work with Knative. And all your operational experience is in running Knative workloads. It would be a shame to throw all that out just to implement your own autoscaling algorithm. But then you remember something Dr. Mark said way back when he started looking in to Knative v0.3. With the PodAutoscaler custom resource, you can implement <strong class="markup--strong markup--p-strong">your own reconciler and autoscaling system</strong> without changing anything else about the Knative Serving system. Well, there you go!</p>
|
||||
<p name="b5d8" id="b5d8" class="graf graf--p graf-after--p">A quick copy of a Kubernetes sample-controller and you’ve implemented a reconciler that operates on your own class of Knative PodAutoscaler. It queries upstream metrics to scale predictively.</p>
|
||||
<p name="7af8" id="7af8" class="graf graf--p graf-after--p">This is what you have to change in your Knative Service to wire it up:</p>
|
||||
<figure name="d26a" id="d26a" class="graf graf--figure graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 465px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-width="2012" data-height="1336" src="../../../../articles/images/1_Ec5KvL9ux3AvlMFJ6liiDw.png">
|
||||
</div>
|
||||
</figure>
|
||||
<p name="ddb3" id="ddb3" class="graf graf--p graf-after--figure">Wow. Controllers and autoscalers are hard to write. But it’s a core problem for your business and you’ve got it up and running. And you didn’t have to touch all the other stuff that wasn’t related to this particular autoscaling problem. As you think on how Knative has grown with your business over the last couple years, you just gotta say “I got options, but Knative … you’re the top one!”</p>
|
||||
<h3 name="b13d" id="b13d" class="graf graf--h3 graf-after--p">What happened?</h3>
|
||||
<p name="98d5" id="98d5" class="graf graf--p graf-after--h3">To learn more about how the PodAutoscaler works and the options that Knative autoscaling has, please watch the Kubecon talk <a href="https://youtu.be/OPSIPr-Cybs" data-href="https://youtu.be/OPSIPr-Cybs" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Knative: Scaling From 0 to Infinity</a> and checkout the code on <a href="https://github.com/josephburnett/kubecon18" data-href="https://github.com/josephburnett/kubecon18" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Github</a>. Or play around with the Knative Serving <a href="../../../../../docs/serving/samples/autoscale-go" target="_blank">autoscaling sample</a>.</p>
|
||||
<p name="2ee4" id="2ee4" class="graf graf--p graf-after--p">This is where the PodAutoscaler sits in relation to the other Knative entities:</p>
|
||||
<figure name="d41a" id="d41a" class="graf graf--figure graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 394px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-image-id="principled-objects" data-width="960" data-height="540" data-is-featured="true" src="../../../../../images/principled-objects.png">
|
||||
</div>
|
||||
</figure>
|
||||
<p name="f11d" id="f11d" class="graf graf--p graf--empty graf-after--figure graf--trailing">
|
||||
<br>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<footer>
|
||||
<p>
|
||||
<a href="https://medium.com/p/e32a27b7855">View original.</a>
|
||||
</p>
|
||||
<p>Exported from <a href="https://medium.com">Medium</a> on March 27, 2019.</p>
|
||||
</footer>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,55 @@
|
|||
nav:
|
||||
- Home: /docs/
|
||||
- Getting started: /docs/getting-started/
|
||||
# Administration guide
|
||||
- Administration guide: /docs/admin/
|
||||
# Developer guide
|
||||
- Developer guide: /docs/developer/
|
||||
# Serving
|
||||
- Knative Serving: /docs/serving/
|
||||
# Eventing
|
||||
- Knative Eventing: /docs/eventing/
|
||||
# Client
|
||||
- Client: /docs/client/
|
||||
# Blog
|
||||
- Blog:
|
||||
- index.md
|
||||
- Releases:
|
||||
- releases/announcing-knative-v0-26-release.md
|
||||
- releases/announcing-knative-v0-25-release.md
|
||||
- releases/announcing-knative-v0-24-release.md
|
||||
- releases/announcing-knative-v0-23-release.md
|
||||
- releases/announcing-knative-v0-22-release.md
|
||||
- releases/announcing-knative-v0-21-release.md
|
||||
- releases/announcing-knative-v0-20-release.md
|
||||
- releases/announcing-knative-v0-19-release.md
|
||||
- releases/announcing-knative-v0-18-release.md
|
||||
- releases/announcing-knative-v0-17-release.md
|
||||
- releases/announcing-knative-v0-5-release.md
|
||||
- releases/announcing-knative-v0-4-release.md
|
||||
- releases/announcing-knative-v0-3-release.md
|
||||
- releases/announcing-knative-v0-2-release.md
|
||||
- Articles:
|
||||
- articles/quickstart-with-knative.md
|
||||
- articles/distributed-tracing.md
|
||||
- articles/event-drive-app-knative-eventing-kogito.md
|
||||
- articles/orchestrating-cloud-events-with.md
|
||||
- articles/event-driven-image-bigquery-processing-pipelines.md
|
||||
- articles/get-started-knative-eventing.md
|
||||
- articles/knative-v0-3-autoscaling-a-love-story.md
|
||||
- articles/ko-fast-kubernetes-microservice-development-in-go.md
|
||||
- articles/build-deploy-manage-modern-serverless-workloads-using-knative-on-kubernetes.md
|
||||
- articles/set-up-a-local-knative-environment-with-kind.md
|
||||
- Steering Committee:
|
||||
- steering/toc-2021-election-announcement.md
|
||||
- steering/2020-11-ksc-elections.md
|
||||
- steering/governance-changes.md
|
||||
- steering/2020-05-toc_election_results.md
|
||||
- steering/2020-01-annual-report-2019.md
|
||||
- steering/2019-12-updates.md
|
||||
- Events:
|
||||
- events/knative-at-kubecon-eu-2019.md
|
||||
- events/knative-at-kubecon-seattle.md
|
||||
# Reference docs
|
||||
- Reference: /docs/reference/
|
||||
- "Join the Community ➠": /community/
|
|
@ -6,12 +6,6 @@ description: "Learn how to build, deploy, and manage modern serverless workloads
|
|||
type: "blog"
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<article class="h-entry">
|
||||
<section data-field="description" class="p-summary">
|
||||
By now, Kubernetes should be the default target for your deployments. Yes, there are still use-cases where Kubernetes is not the optimal…
|
||||
|
@ -34,7 +28,7 @@ type: "blog"
|
|||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 410px; max-height: 322px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-image-id="knative.png" data-width="410" data-height="322" src="../../../../images/knative.png">
|
||||
<img class="graf-image" data-image-id="knative.png" data-width="410" data-height="322" src="/blog/images/knative.png">
|
||||
</div>
|
||||
</figure>
|
||||
<p name="aa9b" id="aa9b" class="graf graf--p graf-after--figure">At Google Cloud Next in San Francisco this week, Google announced an early preview of the GKE serverless add-on (<a href="http://g.co/serverlessaddon" data-href="http://g.co/serverlessaddon" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">g.co/serverlessaddon</a>). Google also open-sourced Knative (kay-nay-tiv), the project that powers the serverless add-on (<a href="https://github.com/knative" data-href="https://github.com/knative" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">github.com/knative</a>).</p>
|
||||
|
@ -43,7 +37,7 @@ type: "blog"
|
|||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 440px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-image-id="0*v-wKOVy6dsJdbABA" data-width="1600" data-height="1005" data-is-featured="true" src="../../../../images/audience.png">
|
||||
<img class="graf-image" data-image-id="0*v-wKOVy6dsJdbABA" data-width="1600" data-height="1005" data-is-featured="true" src="/blog/images/audience.png">
|
||||
</div>
|
||||
<figcaption class="imageCaption">Knative audience</figcaption>
|
||||
</figure>
|
||||
|
@ -64,7 +58,7 @@ type: "blog"
|
|||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 431px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-image-id="0*hfyRGyNWNFycw5bx" data-width="740" data-height="456" src="../../../../images/primitive-objects.png">
|
||||
<img class="graf-image" data-image-id="0*hfyRGyNWNFycw5bx" data-width="740" data-height="456" src="/blog/images/primitive-objects.png">
|
||||
</div>
|
||||
<figcaption class="imageCaption">Knative defines primitives with clear separation of concerns</figcaption>
|
||||
</figure>
|
||||
|
@ -83,7 +77,7 @@ type: "blog"
|
|||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 559px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-image-id="0*3jjrwXWgze2pPhnm" data-width="762" data-height="608" src="../../../../images/events-model.png">
|
||||
<img class="graf-image" data-image-id="0*3jjrwXWgze2pPhnm" data-width="762" data-height="608" src="/blog/images/events-model.png">
|
||||
</div>
|
||||
<figcaption class="imageCaption">Knative eventing constructs</figcaption>
|
||||
</figure>
|
||||
|
@ -115,5 +109,3 @@ type: "blog"
|
|||
<p>Exported from <a href="https://medium.com">Medium</a> on January 8, 2019.</p>
|
||||
</footer>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
|
@ -1,22 +1,13 @@
|
|||
---
|
||||
Title: 'Orchestrating Events with Knative and Kogito'
|
||||
Author: Ricardo Zanini and Tihomir Surdilovic
|
||||
Author handle: https://twitter.com/zaninirica, https://twitter.com/tsurdilo
|
||||
Date: '2020-12-17'
|
||||
Description: A brief introduction of Knative Eventing integration with Kogito implementation of the Serverless Workflow specification
|
||||
Folder with media files: 'images/kogito'
|
||||
Blog URL: ''
|
||||
Labels: Demo
|
||||
Reviewers: 'abrennan89, macruzbar, lberk'
|
||||
|
||||
title: 'Orchestrating Events with Knative and Kogito'
|
||||
author: Ricardo Zanini and Tihomir Surdilovic
|
||||
author handle: https://twitter.com/zaninirica, https://twitter.com/tsurdilo
|
||||
date: 2020-12-17
|
||||
description: A brief introduction of Knative Eventing integration with Kogito implementation of the Serverless Workflow specification
|
||||
folder with media files: 'images/kogito'
|
||||
blog URL: ''
|
||||
labels: Demo
|
||||
---
|
||||
<!--
|
||||
| Reviewer | Date | Approval |
|
||||
| ------------- | ------------- | ------------- |
|
||||
| abrennan89 | 2020-12-09 | :+1: |
|
||||
| macruzbar | 2020-12-14 | :+1: |
|
||||
| lberk | 2020-12-17 | :+1: |
|
||||
-->
|
||||
|
||||
[Kogito](https://kogito.kie.org/) is a platform for the development of cloud-native business automation applications. It is designed targeting cloud-native architectures, and it comes with a series of features to make it easy for architects and developers to create business applications.
|
||||
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 440 KiB After Width: | Height: | Size: 440 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 131 KiB |
|
@ -0,0 +1,249 @@
|
|||
---
|
||||
title: "Knative v0.3 Autoscaling — A Love Story"
|
||||
linkTitle: "Knative v0.3 Autoscaling"
|
||||
date: 2019-03-27
|
||||
description: "New options in Knative v0.3 for customizing the autoscaling subsystem."
|
||||
type: "blog"
|
||||
---
|
||||
|
||||
<article class="h-entry">
|
||||
|
||||
<section data-field="subtitle" class="p-summary">
|
||||
|
||||
Scaling in the Knative v0.3 release includes new options for customizing the autoscaling subsystem. From a batteries-included…
|
||||
|
||||
</section>
|
||||
|
||||
<section data-field="body" class="e-content">
|
||||
|
||||
<section name="f67c" class="section section--body section--first section--last">
|
||||
|
||||
<div class="section-divider">
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-content">
|
||||
|
||||
<div class="section-inner sectionLayout--insetColumn">
|
||||
|
||||
<h3 name="1b46" id="1b46" class="graf graf--h3 graf--leading graf--title">Knative v0.3 Autoscaling — A Love Story</h3>
|
||||
|
||||
<p name="9627" id="9627" class="graf graf--p graf-after--h3">Scaling in the Knative v0.3 release includes new options for customizing the autoscaling subsystem. From a batteries-included, scale-to-zero default, to an ability to replace the autoscaling system entirely, and everything in between. PodAutoscaler, the new custom resource in Knative, provides an extension and control point with which to configure your application.</p>
|
||||
|
||||
<p name="045a" id="045a" class="graf graf--p graf-after--p">To illustrate these options, let’s walk through the evolution of a Web application from inception to complex autoscaling. We promise, “Knative Autoscaling will grow old with you.”</p>
|
||||
|
||||
<h3 name="2645" id="2645" class="graf graf--h3 graf-after--p">I just wanna keep it simple</h3>
|
||||
|
||||
<p name="e70a" id="e70a" class="graf graf--p graf-after--h3">One morning, you sit bolt upright in bed struck by the realization that what people really want… is love. You write a quick Web application to apply a heart-shaped watermark to any given image in just the right place. Since you’re a savvy, modern application developer, you drop it in a container and spin it up on a Knative Service on GKE with `gcloud run deploy — image gcr.io/joe-does-knative/love`.</p>
|
||||
|
||||
<p name="55ba" id="55ba" class="graf graf--p graf-after--p">This is what your Knative Service looks like:</p>
|
||||
|
||||
<figure name="986d" id="986d" class="graf graf--figure graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 334px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-width="1574" data-height="752" src="/blog/articles/images/1_F-mOzMbo-Yy2XWTSgJkfQA.png">
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="a160" id="a160" class="graf graf--p graf-after--figure">You show it to your BFF and they post it on Hacker News. Voila, you’re on the front page of the hacker’s Internet! HN tries to give you the hug-of-death, but your application and cluster scales up to handle 1000 op/s of traffic seamlessly. After a while, the excitement dies down and your service is getting 1 or 2 requests per hour. Luckily, Knative scales to zero Pods when not in use, so you don’t spend money running an idle process. And you never changed anything after the initial deployment! That was simple.</p>
|
||||
|
||||
<figure name="75df" id="75df" class="graf graf--figure graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 520px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-image-id="gopher" data-width="800" data-height="594" src="/blog/articles/images/gopher.png">
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
<figcaption>
|
||||
|
||||
<small>Original image: <a href="https://cheezburger.com/7892518656/gopher-love">https://cheezburger.com/7892518656/gopher-love</a>
|
||||
|
||||
</small>
|
||||
|
||||
</figcaption>
|
||||
|
||||
<h3 name="cc2e" id="cc2e" class="graf graf--h3 graf-after--figure">Please don’t go away</h3>
|
||||
|
||||
<p name="dc4d" id="dc4d" class="graf graf--p graf-after--h3">Several weeks later, lightning strikes again and you realize… “I could make money doing this”. Clearly people enjoyed the heart-shaped watermarks. Maybe you could let people use your service to watermark images on their entire website! Adding a quick in-memory cache in front of your Ruby script (yeah, it’s Ruby) you redeploy and then start advertising your product as a general image-processing service. Things are going well, but you quickly realize that your traffic is unpredictable — it bursts a lot. And when the service scales to 0 Pods and later the traffic resumes, you spend the first few minutes building up the cache again, which makes request latency a little too high. So you decide to add an annotation to your Knative Service’s Revision template to maintain at least 2 Pods at all times.</p>
|
||||
|
||||
<p name="1828" id="1828" class="graf graf--p graf-after--p">This is what your Knative Service looks like now:</p>
|
||||
|
||||
<figure name="cb2d" id="cb2d" class="graf graf--figure graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 425px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-width="1578" data-height="958" src="../../../../articles/images/1_BkMXQfMrRERP_n04_C7geQ.png">
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="c288" id="c288" class="graf graf--p graf-after--figure">Things aren’t scaling to zero. But that’s fine because you’re making a little money from the venture.</p>
|
||||
|
||||
<h3 name="6915" id="6915" class="graf graf--h3 graf-after--p">Things are heating up</h3>
|
||||
|
||||
<p name="8920" id="8920" class="graf graf--p graf-after--h3">Woah! Traffic is starting to ramp up. You’re averaging about 500 op/s and running between 10 and 50 Pods depending on the time of day. You’ve noticed that this job is mostly CPU-bound and you’re not utilizing all your resources as efficiently as you could. So you make some adjustments to the default autoscaling target:</p>
|
||||
|
||||
<figure name="51a1" id="51a1" class="graf graf--figure graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 175px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-width="1520" data-height="380" src="/blog/articles/images/1_O6ZSdCeotT7J4zSbDNIsYw.png">
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="68f8" id="68f8" class="graf graf--p graf-after--figure">But eventually you conclude that you just need to scale on CPU to keep your machines hot. So you choose a different Knative autoscaling class entirely. The class annotation will tell Knative to use a different PodAutoscaler controller implementation, kinda like Kubernetes Ingress.</p>
|
||||
|
||||
<p name="cdaa" id="cdaa" class="graf graf--p graf-after--p">Here is your Knative Service now:</p>
|
||||
|
||||
<figure name="1d64" id="1d64" class="graf graf--figure graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 378px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-width="2010" data-height="1084" src="/blog/articles/images/1_fSxikLtB7TNsV-6Y3u5g2w.png">
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="3827" id="3827" class="graf graf--p graf-after--figure">Running at 60% CPU consistently you’re actually starting to make more money than you’re spending! So you quit your day job to pursue heart-shaped watermarking full time.</p>
|
||||
|
||||
<h3 name="cfd7" id="cfd7" class="graf graf--h3 graf-after--p">Let’s get serious</h3>
|
||||
|
||||
<p name="5397" id="5397" class="graf graf--p graf-after--h3">Things are getting complicated. Seeking professional help, you hire Dr. Mark to help you run your service operations. One of the first things he implements is rollout mode for your service. No more leaping before you look!</p>
|
||||
|
||||
<figure name="3d05" id="3d05" class="graf graf--figure graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 462px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-width="2000" data-height="1320" src="/blog/articles/images/1_znzl9nGKIif51YRwmBw_BA.png">
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="d2e5" id="d2e5" class="graf graf--p graf-after--figure">Things are smooth sailing with Dr. Mark at the helm! As the weeks roll on, New Year’s Eve approaches and you start seeing non-linear growth in your metrics. A quick consultation with Dr. Mark confirms your worst fears. People go crazy sending each other pictures with hearts on New Year’s Eve. And they do it <strong class="markup--strong markup--p-strong">all at the same time</strong> like they are coordinating a DDOS attack of love. You’re going to need a plan.</p>
|
||||
|
||||
<p name="eb80" id="eb80" class="graf graf--p graf-after--p">Luckily, Dr. Mark has been doing his reading in the Knative Serving release notes and begins experimenting with editing the PodAutoscaler on pre-existing Knative Revisions. The PodAutoscaler is where Knative keeps its autoscaling state and configuration for a Knative Revision. And unlike the Knative Revision, it’s mutable (on purpose). You make a plan to ramp up capacity slightly ahead of traffic as it builds to each NYE event across the globe (yeah, it happens 24 times!)</p>
|
||||
|
||||
<figure name="2941" id="2941" class="graf graf--figure graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 303px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-width="2360" data-height="1022" src="/blog/articles/images/1_OwJCCIaSFFSE1Rv6ZPuTBQ.png"> </div>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="0f7a" id="0f7a" class="graf graf--p graf-after--figure">Over the course of the evening, New Year’s marches from timezone to timezone. You see a few minutes of errors on the first NYE event because the CPU target of 60% is too high. But after you adjust it down to 40% for the next event, it’s smooth sailing for the rest of the evening. Hooray! 🎉</p>
|
||||
|
||||
<h3 name="45d7" id="45d7" class="graf graf--h3 graf-after--p">You’re so special</h3>
|
||||
|
||||
<p name="f604" id="f604" class="graf graf--p graf-after--h3">It’s been a full year and things have been crazy! You’ve done some deep integrations with several major image hosting websites and they are driving like 80% of your traffic and revenue now. With a little time on your hands, you start analyzing your autoscaling statistics. You realize that traffic observed by your upstream referrers almost <strong class="markup--strong markup--p-strong">perfectly</strong> predicts your traffic patterns. And they can give you those metrics through your API integration!</p>
|
||||
|
||||
<p name="b6dd" id="b6dd" class="graf graf--p graf-after--p">But you have implemented your CI/CD pipeline to work with Knative. And all your operational experience is in running Knative workloads. It would be a shame to throw all that out just to implement your own autoscaling algorithm. But then you remember something Dr. Mark said way back when he started looking in to Knative v0.3. With the PodAutoscaler custom resource, you can implement <strong class="markup--strong markup--p-strong">your own reconciler and autoscaling system</strong> without changing anything else about the Knative Serving system. Well, there you go!</p>
|
||||
|
||||
<p name="b5d8" id="b5d8" class="graf graf--p graf-after--p">A quick copy of a Kubernetes sample-controller and you’ve implemented a reconciler that operates on your own class of Knative PodAutoscaler. It queries upstream metrics to scale predictively.</p>
|
||||
|
||||
<p name="7af8" id="7af8" class="graf graf--p graf-after--p">This is what you have to change in your Knative Service to wire it up:</p>
|
||||
|
||||
<figure name="d26a" id="d26a" class="graf graf--figure graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 465px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-width="2012" data-height="1336" src="/blog/articles/images/1_Ec5KvL9ux3AvlMFJ6liiDw.png">
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="ddb3" id="ddb3" class="graf graf--p graf-after--figure">Wow. Controllers and autoscalers are hard to write. But it’s a core problem for your business and you’ve got it up and running. And you didn’t have to touch all the other stuff that wasn’t related to this particular autoscaling problem. As you think on how Knative has grown with your business over the last couple years, you just gotta say “I got options, but Knative … you’re the top one!”</p>
|
||||
|
||||
<h3 name="b13d" id="b13d" class="graf graf--h3 graf-after--p">What happened?</h3>
|
||||
|
||||
<p name="98d5" id="98d5" class="graf graf--p graf-after--h3">To learn more about how the PodAutoscaler works and the options that Knative autoscaling has, please watch the Kubecon talk <a href="https://youtu.be/OPSIPr-Cybs" data-href="https://youtu.be/OPSIPr-Cybs" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Knative: Scaling From 0 to Infinity</a> and checkout the code on <a href="https://github.com/josephburnett/kubecon18" data-href="https://github.com/josephburnett/kubecon18" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Github</a>. Or play around with the Knative Serving <a href="../../../../../docs/serving/samples/autoscale-go" target="_blank">autoscaling sample</a>.</p>
|
||||
|
||||
<p name="2ee4" id="2ee4" class="graf graf--p graf-after--p">This is where the PodAutoscaler sits in relation to the other Knative entities:</p>
|
||||
|
||||
<figure name="d41a" id="d41a" class="graf graf--figure graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 394px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-image-id="principled-objects" data-width="960" data-height="540" data-is-featured="true" src="/blog/images/principled-objects.png">
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="f11d" id="f11d" class="graf graf--p graf--empty graf-after--figure graf--trailing">
|
||||
|
||||
<br>
|
||||
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
|
||||
<p>
|
||||
|
||||
<a href="https://medium.com/p/e32a27b7855">View original.</a>
|
||||
|
||||
</p>
|
||||
|
||||
<p>Exported from <a href="https://medium.com">Medium</a> on March 27, 2019.</p>
|
||||
|
||||
</footer>
|
|
@ -6,12 +6,6 @@ description: "Using ko for fast microservices development in Kubernetes."
|
|||
type: "blog"
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<article class="h-entry">
|
||||
<section data-field="body" class="e-content">
|
||||
<section name="f298" class="section section--body section--first section--last">
|
||||
|
@ -39,7 +33,7 @@ type: "blog"
|
|||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<div data-width="884" data-height="241" data-action="zoom" data-scroll="native">
|
||||
<img src="../../../../articles/images/singleservice.png">
|
||||
<img src="/blog/articles/images/singleservice.png">
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
|
@ -51,7 +45,7 @@ type: "blog"
|
|||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<div data-width="976" data-height="344" data-action="zoom" data-scroll="native">
|
||||
<img src="../../../../articles/images/multipleservices.png">
|
||||
<img src="/blog/articles/images/multipleservices.png">
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
|
@ -63,7 +57,7 @@ type: "blog"
|
|||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<div data-width="944" data-height="477" data-action="zoom" data-scroll="native">
|
||||
<img src="../../../../articles/images/scaffold.png">
|
||||
<img src="/blog/articles/images/scaffold.png">
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
|
@ -99,7 +93,7 @@ type: "blog"
|
|||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<div data-width="673" data-height="469" data-action="zoom" data-scroll="native">
|
||||
<img src="../../../../articles/images/koservices.png">
|
||||
<img src="/blog/articles/images/koservices.png">
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
|
@ -148,5 +142,3 @@ type: "blog"
|
|||
</a>.</p>
|
||||
</footer>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: Knative Quickstart plugin
|
||||
title: Announcing the Knative Quickstart plugin
|
||||
linkTitle: Knative Quickstart
|
||||
author: "Paul Schweigert, Senior Software Engineer @ IBM"
|
||||
date: 2021-09-17
|
||||
|
@ -7,8 +7,6 @@ description: Knative quickstart is a plugin for the Knative client that enables
|
|||
type: "blog"
|
||||
---
|
||||
|
||||
## Announcing the `Quickstart` plugin for Knative
|
||||
|
||||
We're pleased to announce that the [`quickstart` plugin](https://github.com/knative-sandbox/kn-plugin-quickstart) for the Knative client is now available. The plugin allows users to very easily set up a local Knative environment with just a single command using a local [KinD](https://kind.sigs.k8s.io/) or [minikube](https://minikube.sigs.k8s.io/) cluster.
|
||||
|
||||
```
|
|
@ -1,19 +1,12 @@
|
|||
---
|
||||
Title: 'How to set up a local Knative environment with KinD and without DNS headaches'
|
||||
Author: Leon Stigter
|
||||
Author handle: https://twitter.com/retgits
|
||||
Date: ''
|
||||
Description: A how-to guide to deploy Knative, Kourier, and your first app on top of a Kubernetes cluster.
|
||||
Folder with media files: 'N/A'
|
||||
Blog URL: ''
|
||||
Labels: Articles
|
||||
Reviewers: ''
|
||||
|
||||
title: 'How to set up a local Knative environment with KinD and without DNS headaches'
|
||||
author: Leon Stigter
|
||||
author handle: https://twitter.com/retgits
|
||||
date: 2020-06-03
|
||||
description: A how-to guide to deploy Knative, Kourier, and your first app on top of a Kubernetes cluster.
|
||||
folder with media files: 'N/A'
|
||||
labels: Articles
|
||||
---
|
||||
| Reviewer | Date | Approval |
|
||||
| ------------- | ------------- | ------------- |
|
||||
| @retgits | 2020-06-03 |:+1:|
|
||||
| <!-- Your Github handle here --> | | |
|
||||
|
||||
Knative builds on Kubernetes to abstract away complexity for developers, and enables them to focus on delivering value to their business. The complex (and sometimes boring) parts of building apps to run on Kubernetes are managed by Knative. In this post, we will focus on setting up a lightweight environment to help you to develop modern apps faster using Knative.
|
||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
@ -6,12 +6,6 @@ description: "Knative sessions at KubeCon"
|
|||
type: "blog"
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<article class="h-entry">
|
||||
<section data-field="subtitle" class="p-summary">
|
||||
As we approach KubeCon and CloudNativeCon in Seattle (Dec. 11–13), we wanted to share the different Knative-related sessions that will be…
|
||||
|
@ -30,7 +24,7 @@ type: "blog"
|
|||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 400px; max-height: 400px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-image-id="kubecon.jpg" data-width="400" data-height="400" data-is-featured="true" src="../../../../events/images/kubecon.jpg">
|
||||
<img class="graf-image" data-image-id="kubecon.jpg" data-width="400" data-height="400" data-is-featured="true" src="/blog/events/images/kubecon.jpg">
|
||||
</div>
|
||||
<figcaption class="imageCaption">
|
||||
<a href="https://kccna18.sched.com/" data-href="https://kccna18.sched.com/" class="markup--anchor markup--figure-anchor" rel="noopener" target="_blank">KubeCon</a> SEA 2018</figcaption>
|
||||
|
@ -101,5 +95,3 @@ type: "blog"
|
|||
<p>Exported from <a href="https://medium.com">Medium</a> on January 8, 2019.</p>
|
||||
</footer>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 272 92" width="272" height="92"><path fill="#EA4335" d="M115.75 47.18c0 12.77-9.99 22.18-22.25 22.18s-22.25-9.41-22.25-22.18C71.25 34.32 81.24 25 93.5 25s22.25 9.32 22.25 22.18zm-9.74 0c0-7.98-5.79-13.44-12.51-13.44S80.99 39.2 80.99 47.18c0 7.9 5.79 13.44 12.51 13.44s12.51-5.55 12.51-13.44z"/><path fill="#FBBC05" d="M163.75 47.18c0 12.77-9.99 22.18-22.25 22.18s-22.25-9.41-22.25-22.18c0-12.85 9.99-22.18 22.25-22.18s22.25 9.32 22.25 22.18zm-9.74 0c0-7.98-5.79-13.44-12.51-13.44s-12.51 5.46-12.51 13.44c0 7.9 5.79 13.44 12.51 13.44s12.51-5.55 12.51-13.44z"/><path fill="#4285F4" d="M209.75 26.34v39.82c0 16.38-9.66 23.07-21.08 23.07-10.75 0-17.22-7.19-19.66-13.07l8.48-3.53c1.51 3.61 5.21 7.87 11.17 7.87 7.31 0 11.84-4.51 11.84-13v-3.19h-.34c-2.18 2.69-6.38 5.04-11.68 5.04-11.09 0-21.25-9.66-21.25-22.09 0-12.52 10.16-22.26 21.25-22.26 5.29 0 9.49 2.35 11.68 4.96h.34v-3.61h9.25zm-8.56 20.92c0-7.81-5.21-13.52-11.84-13.52-6.72 0-12.35 5.71-12.35 13.52 0 7.73 5.63 13.36 12.35 13.36 6.63 0 11.84-5.63 11.84-13.36z"/><path fill="#34A853" d="M225 3v65h-9.5V3h9.5z"/><path fill="#EA4335" d="M262.02 54.48l7.56 5.04c-2.44 3.61-8.32 9.83-18.48 9.83-12.6 0-22.01-9.74-22.01-22.18 0-13.19 9.49-22.18 20.92-22.18 11.51 0 17.14 9.16 18.98 14.11l1.01 2.52-29.65 12.28c2.27 4.45 5.8 6.72 10.75 6.72 4.96 0 8.4-2.44 10.92-6.14zm-23.27-7.98l19.82-8.23c-1.09-2.77-4.37-4.7-8.23-4.7-4.95 0-11.84 4.37-11.59 12.93z"/><path fill="#4285F4" d="M35.29 41.41V32H67c.31 1.64.47 3.58.47 5.68 0 7.06-1.93 15.79-8.15 22.01-6.05 6.3-13.78 9.66-24.02 9.66C16.32 69.35.36 53.89.36 34.91.36 15.93 16.32.47 35.3.47c10.5 0 17.98 4.12 23.6 9.49l-6.64 6.64c-4.03-3.78-9.49-6.72-16.97-6.72-13.86 0-24.7 11.17-24.7 25.03 0 13.86 10.84 25.03 24.7 25.03 8.99 0 14.11-3.61 17.39-6.89 2.66-2.66 4.41-6.46 5.1-11.65l-22.49.01z"/></svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,9 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="400">
|
||||
<clipPath id="A">
|
||||
<path d="M0-1v83h55.9v236H1.5v82h195v-82h-55.9V82H195V-1zm554 1v82h55.9v236h-54.4v82h139V172l82.7 228 1.68.04 81.2-228v228h140v-82h-55.9v-236h54.4v-82h-156l-64.7 183-65.5-183z" />
|
||||
<path id="B" d="M222 0v82h55.9v130h215v-24.9s18-14 23.8-27.4l11.5-25.9s5.35-14.5 5.35-27.4l-2.3-25.9s-3.62-21.1-9.92-27.3l-22.3-25.9S470.73-.1 433.13-.1zm140 82h82v76h-82z" />
|
||||
<use transform="matrix(1 0 0 -1 0 400)" xlink:href="#B" />
|
||||
</clipPath>
|
||||
<path d="M0 13.7h1030v53.2H0m0 53.2h975v53.2H0v53.2h975v53.2H0m0 53.2h1030v53.2H0" clip-path="url(#A)" fill="none" stroke="#1f70c1" stroke-width="27.4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 736 B |
|
@ -0,0 +1 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 613 145"><defs><style>.cls-1{fill:#e00;}</style></defs><title>RedHat-Logo-A-Color</title><path class="cls-1" d="M127.47,83.49c12.51,0,30.61-2.58,30.61-17.46a14,14,0,0,0-.31-3.42l-7.45-32.36c-1.72-7.12-3.23-10.35-15.73-16.6C124.89,8.69,103.76.5,97.51.5,91.69.5,90,8,83.06,8c-6.68,0-11.64-5.6-17.89-5.6-6,0-9.91,4.09-12.93,12.5,0,0-8.41,23.72-9.49,27.16A6.43,6.43,0,0,0,42.53,44c0,9.22,36.3,39.45,84.94,39.45M160,72.07c1.73,8.19,1.73,9.05,1.73,10.13,0,14-15.74,21.77-36.43,21.77C78.54,104,37.58,76.6,37.58,58.49a18.45,18.45,0,0,1,1.51-7.33C22.27,52,.5,55,.5,74.22c0,31.48,74.59,70.28,133.65,70.28,45.28,0,56.7-20.48,56.7-36.65,0-12.72-11-27.16-30.83-35.78"/><path d="M160,72.07c1.73,8.19,1.73,9.05,1.73,10.13,0,14-15.74,21.77-36.43,21.77C78.54,104,37.58,76.6,37.58,58.49a18.45,18.45,0,0,1,1.51-7.33l3.66-9.06A6.43,6.43,0,0,0,42.53,44c0,9.22,36.3,39.45,84.94,39.45,12.51,0,30.61-2.58,30.61-17.46a14,14,0,0,0-.31-3.42Z"/><path d="M579.74,92.8c0,11.89,7.15,17.67,20.19,17.67a52.11,52.11,0,0,0,11.89-1.68V95a24.84,24.84,0,0,1-7.68,1.16c-5.37,0-7.36-1.68-7.36-6.73V68.3h15.56V54.1H596.78v-18l-17,3.68V54.1H568.49V68.3h11.25Zm-53,.32c0-3.68,3.69-5.47,9.26-5.47a43.12,43.12,0,0,1,10.1,1.26v7.15a21.51,21.51,0,0,1-10.63,2.63c-5.46,0-8.73-2.1-8.73-5.57m5.2,17.56c6,0,10.84-1.26,15.36-4.31v3.37h16.82V74.08c0-13.56-9.14-21-24.39-21-8.52,0-16.94,2-26,6.1l6.1,12.52c6.52-2.74,12-4.42,16.83-4.42,7,0,10.62,2.73,10.62,8.31v2.73a49.53,49.53,0,0,0-12.62-1.58c-14.31,0-22.93,6-22.93,16.73,0,9.78,7.78,17.24,20.19,17.24m-92.44-.94h18.09V80.92h30.29v28.82H506V36.12H487.93V64.41H457.64V36.12H439.55ZM370.62,81.87c0-8,6.31-14.1,14.62-14.1A17.22,17.22,0,0,1,397,72.09V91.54A16.36,16.36,0,0,1,385.24,96c-8.2,0-14.62-6.1-14.62-14.09m26.61,27.87h16.83V32.44l-17,3.68V57.05a28.3,28.3,0,0,0-14.2-3.68c-16.19,0-28.92,12.51-28.92,28.5a28.25,28.25,0,0,0,28.4,28.6,25.12,25.12,0,0,0,14.93-4.83ZM320,67c5.36,0,9.88,3.47,11.67,8.83H308.47C310.15,70.3,314.36,67,320,67M291.33,82c0,16.2,13.25,28.82,30.28,28.82,9.36,0,16.2-2.53,23.25-8.42l-11.26-10c-2.63,2.74-6.52,4.21-11.14,4.21a14.39,14.39,0,0,1-13.68-8.83h39.65V83.55c0-17.67-11.88-30.39-28.08-30.39a28.57,28.57,0,0,0-29,28.81M262,51.58c6,0,9.36,3.78,9.36,8.31S268,68.2,262,68.2H244.11V51.58Zm-36,58.16h18.09V82.92h13.77l13.89,26.82H292l-16.2-29.45a22.27,22.27,0,0,0,13.88-20.72c0-13.25-10.41-23.45-26-23.45H226Z"/></svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,43 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 25.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 374 56.6" style="enable-background:new 0 0 374 56.6;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#0096DB;}
|
||||
</style>
|
||||
<g>
|
||||
<path class="st0" d="M78.5,22c-1.2-22-32.5-31.4-46-9.5c-8.8-3.9-19.3,2-19.4,11.8c-17.4,1.8-19.2,28.3,6.4,28.3h0.9
|
||||
c-0.7-2.1-0.6-4.3,0.1-6.2l-2.7,0c-12.4-0.1-15.6-18,0.9-16.3c-3-9.9,7.4-18.1,16.2-10.7C42.7,1.1,71.7,0.6,73,26.7
|
||||
c16.2,1.1,15.6,18.3,3.8,19.9H60.3c1.2,1.8,1.4,4,0.6,6h15.9C94.8,52.3,98,25.7,78.5,22z"/>
|
||||
<path class="st0" d="M47,34.1l0.2-0.3c1.6-2.9,8.2-3.1,10.8-0.8c0.8,1.1,1.6,1.8,2.7,2.4c3.2,1.5,7,0.1,8.5-3.1
|
||||
c1.5-3.2,0.1-7-3.1-8.5c-3.2-1.5-6.8,0-8.5,3.1c-1.9,3.5-9.3,2.4-10.7,0.9c-1-1.2-2.3-2.1-3.5-2.5c-1-0.4-2.1-0.5-3.2-0.3
|
||||
c-3.3,0.5-5.6,3.7-5,7c0.1,0.6,0,0.6,0.7,2.2c0.7,1.6-2.6,8.9-6,9.5c-1.4,0-2.4,0.1-3.5,0.7C23,46,21.9,49.9,23.5,53
|
||||
c1.7,3.1,5.5,4.3,8.7,2.6c3.1-1.7,4.1-5.4,2.6-8.7c-1.6-3.6,3.2-9.3,5.9-9.5c2.7-0.2,7.5,6.3,5.9,9.3c-1.7,3.1-1,7,2,8.9
|
||||
c3,1.9,7,1,8.9-2c1.9-3,1-7-2-8.9c-1.1-0.7-2.1-0.9-3.5-1c-3.4-0.9-6.8-6.4-5.2-9.4C46.9,34.3,46.9,34.2,47,34.1z M63.6,26.8
|
||||
c1.5,0,2.8,1.2,2.8,2.8s-1.2,2.8-2.8,2.8c-1.5,0-2.8-1.2-2.8-2.8S62,26.8,63.6,26.8z M29.1,53.1c-1.5,0-2.8-1.2-2.8-2.8
|
||||
c0-1.5,1.2-2.8,2.8-2.8c1.5,0,2.8,1.2,2.8,2.8C31.9,51.8,30.7,53.1,29.1,53.1z M41,32.8c-1.2,0-2.1-0.9-2.1-2.1
|
||||
c0-1.2,0.9-2.1,2.1-2.1c1.2,0,2.1,0.9,2.1,2.1C43.1,31.9,42.2,32.8,41,32.8z M52.2,47.5c1.5,0,2.8,1.2,2.8,2.8
|
||||
c0,1.5-1.2,2.8-2.8,2.8s-2.8-1.2-2.8-2.8C49.4,48.7,50.6,47.5,52.2,47.5z"/>
|
||||
<g>
|
||||
<path d="M114,15.8h-8.5v-2.6h19.8v2.6h-8.5v22.6H114V15.8z"/>
|
||||
<path d="M130.6,13.1h10.8c3.1,0,5.6,0.9,7.2,2.5c1.2,1.2,1.9,3,1.9,5v0.1c0,4.2-2.9,6.6-6.8,7.3l7.7,10.3h-3.5l-7.3-9.8h-7.2v9.8
|
||||
h-2.8V13.1z M141.1,26c3.8,0,6.5-1.9,6.5-5.2v-0.1c0-3.1-2.4-5-6.4-5h-7.8V26H141.1z"/>
|
||||
<path d="M156.8,13.1h2.8v25.2h-2.8V13.1z"/>
|
||||
<path d="M165.9,25.8L165.9,25.8c0-7,5.1-13.1,12.6-13.1c4.2,0,6.9,1.2,9.4,3.3l-1.8,2.2c-1.9-1.7-4.1-2.9-7.7-2.9
|
||||
c-5.6,0-9.6,4.7-9.6,10.3v0.1c0,6,3.9,10.5,10,10.5c2.9,0,5.5-1.1,7.3-2.5v-6.3h-7.7v-2.6h10.4v10c-2.3,2.1-5.9,3.9-10.1,3.9
|
||||
C170.8,38.8,165.9,33,165.9,25.8z"/>
|
||||
<path d="M194.2,25.8L194.2,25.8c0-7,5.1-13.1,12.6-13.1c4.2,0,6.9,1.2,9.4,3.3l-1.8,2.2c-1.9-1.7-4.1-2.9-7.7-2.9
|
||||
c-5.6,0-9.6,4.7-9.6,10.3v0.1c0,6,3.9,10.5,10,10.5c2.9,0,5.5-1.1,7.3-2.5v-6.3h-7.7v-2.6h10.4v10c-2.3,2.1-5.9,3.9-10.1,3.9
|
||||
C199.1,38.8,194.2,33,194.2,25.8z"/>
|
||||
<path d="M223.5,13.1h18.2v2.6h-15.4v8.6h13.8v2.6h-13.8v8.8h15.5v2.6h-18.4V13.1z"/>
|
||||
<path d="M247.6,13.1h10.8c3.1,0,5.6,0.9,7.2,2.5c1.2,1.2,1.9,3,1.9,5v0.1c0,4.2-2.9,6.6-6.8,7.3l7.7,10.3H265l-7.3-9.8h-7.2v9.8
|
||||
h-2.8V13.1z M258.2,26c3.8,0,6.5-1.9,6.5-5.2v-0.1c0-3.1-2.4-5-6.4-5h-7.8V26H258.2z"/>
|
||||
<path d="M272.3,13.1h7.4l6,9.8l6-9.8h7.4v25.2h-6.9V23.9l-6.4,9.9h-0.1l-6.4-9.8v14.4h-6.8V13.1z"/>
|
||||
<path d="M303.6,13.1h20.3V19h-13.4v3.9h12.1v5.5h-12.1v4H324v5.9h-20.4V13.1z"/>
|
||||
<path d="M325.7,34.6l3.9-4.6c2.5,2,5.3,3,8.2,3c1.9,0,2.9-0.6,2.9-1.7v-0.1c0-1.1-0.8-1.6-4.3-2.4c-5.4-1.2-9.5-2.7-9.5-7.9v-0.1
|
||||
c0-4.7,3.7-8.1,9.8-8.1c4.3,0,7.6,1.2,10.4,3.3l-3.5,4.9c-2.3-1.7-4.8-2.5-7.1-2.5c-1.7,0-2.5,0.7-2.5,1.6v0.1
|
||||
c0,1.2,0.9,1.7,4.4,2.4c5.8,1.3,9.4,3.1,9.4,7.8v0.1c0,5.1-4.1,8.2-10.2,8.2C333.1,38.8,328.8,37.4,325.7,34.6z"/>
|
||||
<path d="M351.1,13.1h7v9.4h9v-9.4h7v25.2h-7v-9.6h-9v9.6h-7V13.1z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.4 KiB |
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 498.10536 84.300003"
|
||||
xml:space="preserve"
|
||||
width="498.10535"
|
||||
height="84.300003"><metadata
|
||||
id="metadata25"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs23" />
|
||||
<style
|
||||
type="text/css"
|
||||
id="style2">
|
||||
.st0{fill:#727175;}
|
||||
</style>
|
||||
<g
|
||||
id="g18"
|
||||
transform="translate(-68.594642,-69.4)">
|
||||
<path
|
||||
class="st0"
|
||||
d="M 283.2,143.2 261.8,83.7 c -0.3,-0.8 -0.7,-1.9 -0.7,-2.9 0,-2.6 2.2,-5 5.3,-5 2.7,0 4.5,1.8 5.3,4.4 l 17.7,51.3 17.8,-51.4 c 0.8,-2.4 2.5,-4.2 5.2,-4.2 h 0.5 c 2.9,0 4.6,1.8 5.5,4.2 l 17.7,51.4 18,-51.5 c 0.7,-2.2 2.2,-4.1 5,-4.1 3,0 5.2,2.3 5.2,4.9 0,1 -0.4,2 -0.7,2.9 l -21.5,59.6 c -1.1,3.1 -3.3,4.7 -5.7,4.7 H 336 c -2.7,0 -4.8,-1.6 -5.7,-4.7 l -17.5,-50.6 -17.7,50.6 c -0.9,3.1 -3,4.7 -5.7,4.7 h -0.3 c -2.6,0 -4.8,-1.6 -5.9,-4.8"
|
||||
id="path4" />
|
||||
<path
|
||||
class="st0"
|
||||
d="m 439,81 c 0,-2.9 2.3,-5.3 5.2,-5.3 3,0 5.3,2.3 5.3,5.3 v 12.1 c 5.2,-11.7 16.7,-17.3 24.3,-17.3 3.1,0 5.2,2.3 5.2,5.3 0,2.9 -1.9,4.9 -4.6,5.3 -13.6,1.6 -24.8,11.9 -24.8,32.2 v 23.9 c 0,2.9 -2.2,5.3 -5.2,5.3 -3,0 -5.3,-2.3 -5.3,-5.3 V 81"
|
||||
id="path6" />
|
||||
<path
|
||||
class="st0"
|
||||
d="m 512.7,148.6 c -19,0 -34.5,-14.7 -34.5,-36.3 V 112 c 0,-20.1 14,-36.3 33.1,-36.3 20.4,0 32.1,16.9 32.1,35.4 0,2.8 -2.3,4.9 -4.8,4.9 h -50 c 1.5,15.1 12,23.6 24.3,23.6 8.6,0 14.8,-3.4 19.9,-8.1 0.8,-0.7 1.7,-1.2 2.9,-1.2 2.5,0 4.5,2 4.5,4.5 0,1.2 -0.5,2.4 -1.6,3.4 -6.4,6.2 -14.1,10.4 -25.9,10.4 m 20.4,-40.4 c -1.1,-12.7 -8.3,-23.8 -22,-23.8 -12,0 -21.1,10.1 -22.4,23.8 z"
|
||||
id="path8" />
|
||||
<path
|
||||
class="st0"
|
||||
d="m 364.6,126.7 v -0.3 c 0,-14.8 12.2,-22.7 30,-22.7 9,0 15.4,1.2 21.6,3 v -2.4 c 0,-12.6 -7.8,-19.2 -20.9,-19.2 -7.1,0 -11.2,0.9 -16.4,3.2 -0.7,0.3 -1.4,0.4 -1.9,0.4 -2.5,0 -4.6,-2 -4.6,-4.5 0,-2.2 1,-3.5 2.9,-4.4 6.9,-3 12.1,-4 21.1,-4 9.9,0 17.5,2.6 22.7,7.7 4.8,4.8 7.2,11.6 7.2,20.5 v 38.8 c 0,3 -2.2,5.2 -5,5.2 -3,0 -5,-2.2 -5,-4.9 v -6.7 c -4.9,6.4 -13.1,12.1 -25.4,12.1 -13.1,0.1 -26.3,-7.4 -26.3,-21.8 m 51.8,-5.4 v -6.8 c -5.2,-1.5 -12.1,-3 -20.7,-3 -13.2,0 -20.5,5.7 -20.5,14.6 v 0.3 c 0,8.8 8.2,14 17.7,14 12.9,-0.1 23.5,-8 23.5,-19.1"
|
||||
id="path10" />
|
||||
<path
|
||||
class="st0"
|
||||
d="m 92.8,80.3 c -2.3,-5 -8,-7.3 -13.3,-5 -5.3,2.4 -7.3,8.3 -4.9,13.3 l 22.3,48.5 c 3.5,7.6 7.2,11.6 14.1,11.6 7.4,0 10.6,-4.3 14.2,-11.6 0,0 19.5,-42.4 19.7,-42.8 0.2,-0.5 0.8,-1.8 2.8,-1.8 1.7,0 3.1,1.4 3.1,3.1 v 41.5 c 0,6.4 3.5,11.6 10.4,11.6 6.8,0 10.5,-5.2 10.5,-11.6 v -33.9 c 0,-6.5 4.7,-10.8 11.1,-10.8 6.4,0 10.6,4.4 10.6,10.8 v 33.9 c 0,6.4 3.6,11.6 10.4,11.6 6.8,0 10.5,-5.2 10.5,-11.6 v -33.9 c 0,-6.5 4.7,-10.8 11.1,-10.8 6.4,0 10.6,4.4 10.6,10.8 v 33.9 c 0,6.4 3.5,11.6 10.4,11.6 6.8,0 10.5,-5.2 10.5,-11.6 V 98.5 c 0,-14.2 -11.4,-24.1 -25.1,-24.1 -13.7,0 -22.3,9.5 -22.3,9.5 -4.6,-5.9 -10.9,-9.5 -21.5,-9.5 -11.2,0 -21.1,9.5 -21.1,9.5 -4.6,-5.9 -12.3,-9.5 -18.8,-9.5 -10,0 -17.9,4.4 -22.7,15.4 L 111,123.4 92.8,80.3"
|
||||
id="path12" />
|
||||
<path
|
||||
class="st0"
|
||||
d="m 544.3,84.5 v 0 c 0,-4.8 3.8,-8.8 8.7,-8.8 4.9,0 8.7,4 8.7,8.7 v 0 c 0,4.8 -3.8,8.8 -8.7,8.8 -4.9,0 -8.7,-4 -8.7,-8.7 M 560,84.4 v 0 c 0,-3.9 -3,-7.1 -7,-7.1 -4,0 -7,3.2 -7,7.1 v 0.1 c 0,3.9 3,7.1 7,7.1 4,-0.1 7,-3.3 7,-7.2"
|
||||
id="path14" />
|
||||
<path
|
||||
class="st0"
|
||||
d="m 549.7,81 c 0,-0.5 0.4,-0.9 0.9,-0.9 h 2.9 c 1.1,0 1.9,0.3 2.5,0.9 0.5,0.5 0.7,1.1 0.7,1.9 v 0 c 0,1.3 -0.7,2.1 -1.7,2.6 l 1.3,1.6 c 0.2,0.2 0.3,0.4 0.3,0.7 0,0.5 -0.4,0.9 -0.9,0.9 -0.4,0 -0.7,-0.2 -0.9,-0.5 L 553,85.9 h -1.5 v 1.8 c 0,0.5 -0.4,0.9 -0.9,0.9 -0.5,0 -0.9,-0.4 -0.9,-0.9 z m 3.7,3.1 c 0.9,0 1.4,-0.5 1.4,-1.2 v 0 c 0,-0.8 -0.5,-1.2 -1.4,-1.2 h -1.8 v 2.4 z"
|
||||
id="path16" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 570 KiB After Width: | Height: | Size: 570 KiB |
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 305 KiB After Width: | Height: | Size: 305 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 720 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 166 KiB |
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
|
@ -0,0 +1,470 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="230.29897"
|
||||
height="221.3558"
|
||||
version="1.1"
|
||||
id="svg83"
|
||||
sodipodi:docname="rocket.svg"
|
||||
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||
<defs
|
||||
id="defs87" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1275"
|
||||
inkscape:window-height="896"
|
||||
id="namedview85"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.53125"
|
||||
inkscape:cx="9.6357818"
|
||||
inkscape:cy="74.914934"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg83" />
|
||||
<metadata
|
||||
id="metadata1906">image/svg+xml<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="g81"
|
||||
transform="translate(-326.69075,-95.860577)">
|
||||
<title
|
||||
id="title11">Layer 1</title>
|
||||
<g
|
||||
id="svg_29"
|
||||
transform="matrix(-0.12474725,-0.12474725,0.29722724,-0.29722724,340.16853,348.54744)">
|
||||
<metadata
|
||||
id="svg_28">image/svg+xml</metadata>
|
||||
<path
|
||||
fill="#e73900"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_27"
|
||||
d="M 58.95454,347.23395 C -9.037541,242.85088 73.060089,233.52847 52.118831,90.624024 103.47625,158.04097 117.81456,240.7354 139.37527,265.19403 c 14.88034,19.20859 22.2192,42.3949 20.21849,66.21726 -0.20173,18.85366 23.6251,41.6983 17.10981,59.3005 -34.64389,-27.74878 -94.232524,-9.66226 -117.74903,-43.47784 z" />
|
||||
<path
|
||||
fill="#e73900"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_26"
|
||||
d="m 161.7809,377.71368 c 0.39303,-19.99023 -23.79616,-28.66238 -33.52622,-44.27447 -16.1147,-11.92496 -21.21929,-30.48685 -21.57498,-48.76584 -1.3098,-29.23367 24.74826,-203.54258 62.71112,-250.35614 -14.5484,71.88596 21.56903,167.64252 43.88286,199.32079 15.09956,24.61357 20.77625,52.95274 15.3373,80.83769 -2.67223,22.24722 -21.10112,35.61532 -31.07051,55.56906 -9.97252,12.01678 -23.5441,13.15533 -35.75957,7.66891 z" />
|
||||
<path
|
||||
fill="#e73900"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_25"
|
||||
d="m 175.5607,387.49258 c 5.78662,-17.36703 -5.66486,-44.89495 -9.27092,-61.00222 -9.78333,-14.50379 -8.83797,-32.01615 -4.1256,-48.07773 6.93673,-25.87512 8.08193,-147.98087 120.02512,-205.321894 -86.81754,85.182644 -29.17041,154.410894 -19.77231,187.745504 5.49048,25.33325 2.68381,51.73715 -9.69748,74.51981 -17.09363,31.45379 -62.73308,48.78924 -77.15881,52.13653 z" />
|
||||
<path
|
||||
fill="#e78c00"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_24"
|
||||
d="m 157.11595,377.31308 c 0.29729,-16.31976 -17.99898,-23.39954 -25.35861,-36.14505 -12.18886,-9.73538 -16.04987,-24.88901 -16.31891,-39.81174 -0.99071,-23.86596 23.32575,-150.04612 42.82692,-204.387219 -13.30745,123.179279 20.92102,136.860989 37.79878,162.722669 11.42102,20.09418 15.71477,43.22989 11.60085,65.99475 -2.02123,18.16233 -10.73396,34.71701 -18.27463,51.00696 -7.54301,9.81034 -23.03485,5.09867 -32.2744,0.61963 z" />
|
||||
<path
|
||||
fill="#e78c00"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_23"
|
||||
d="m 86.962914,353.92651 c -69.840643,-71.70462 6.256737,-76.69827 -13.112495,-175.17469 23.002991,46.41659 42.077881,81.28575 50.453851,114.24382 12.39538,11.63806 55.22529,82.68295 52.65835,95.56353 -26.99225,-15.36667 -69.8897,-13.98593 -89.999706,-34.63266 z" />
|
||||
<path
|
||||
fill="#e7e100"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_22"
|
||||
d="M 100.90993,349.60901 C 59.13153,309.94962 90.33152,286.66406 89.958259,237.12917 c 11.549271,43.35273 48.079751,54.03501 47.610721,80.07765 6.03492,7.79028 37.63431,63.34457 34.99195,70.48333 -14.05024,-11.25384 -55.82177,-23.05477 -71.651,-38.08114 z" />
|
||||
<path
|
||||
fill="#e78c00"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_21"
|
||||
d="m 168.06467,344.26385 c -7.3404,-10.88214 -6.63111,-24.0216 -3.09543,-36.07254 5.2046,-19.414 28.07133,-127.32403 60.7381,-150.79486 -23.59104,44.36028 7.42985,112.59653 14.4812,137.60736 4.11949,19.00745 5.27165,41.48987 -7.27597,55.91193 -18.95542,21.78708 -42.88182,34.47507 -56.29,37.51706 -8.52365,5.98154 -5.85229,-32.08371 -8.5579,-44.16895 z" />
|
||||
<path
|
||||
fill="#e7e100"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_20"
|
||||
d="m 156.26263,378.50754 c 0.58986,-9.98438 -10.43516,-14.77625 -14.6226,-22.76364 -7.21938,-6.26514 -9.20458,-15.6395 -8.99637,-24.78269 -0.0101,-14.63678 -0.50958,-105.87648 18.02599,-128.55794 -8.20394,35.6561 22.69143,88.80791 32.37858,105.06359 6.49039,12.58816 8.54106,26.86035 5.4534,40.6954 -1.69139,11.06943 -7.43953,20.98737 -12.46341,30.77249 -4.86341,5.8179 -14.23059,2.54602 -19.77558,-0.42721 z" />
|
||||
<path
|
||||
fill="#e7e100"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_19"
|
||||
d="m 165.07971,379.78284 c 4.74578,-6.95044 -1.13754,-15.17905 -0.70358,-22.75531 -2.49935,-7.64521 0.12405,-15.26957 4.23044,-21.77805 6.32576,-10.56763 17.44223,-89.10139 40.63311,-97.45039 -21.34854,22.18303 15.72362,81.49476 15.68122,97.41783 -0.76264,11.89306 -15.23012,27.96655 -23.44464,36.61523 -6.01024,7.2569 -17.9049,14.23078 -25.76445,19.11887 -6.02721,-3.66385 -7.91678,-6.6232 -10.6321,-11.16818 z" />
|
||||
<path
|
||||
fill="#ffff9e"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_18"
|
||||
d="m 157.0795,371.83478 c -14.75608,-23.24143 -9.28153,-49.17026 -3.00633,-77.45117 2.85862,19.18917 14.76661,42.47567 21.49823,50.11206 4.64589,5.99725 6.93719,13.23639 6.31254,20.67413 -0.063,5.88641 -3.05125,13.01889 -5.08543,18.51459 -10.81639,-8.66364 -12.37677,-1.29184 -19.71901,-11.84961 z" />
|
||||
<path
|
||||
fill="#ffff9e"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_17"
|
||||
d="m 173.66742,360.30753 c 11.43123,-25.04462 0.11491,-44.76145 26.31412,-64.40897 -7.82358,18.21469 10.06971,46.97555 8.12272,56.94846 -3.27428,16.7716 -25.88508,29.25442 -31.60083,30.54705 1.36171,-13.79126 -7.68024,-11.17401 -2.83601,-23.08654 z" />
|
||||
<path
|
||||
fill="#ffff9e"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_16"
|
||||
d="" />
|
||||
</g>
|
||||
<g
|
||||
id="svg_1"
|
||||
transform="rotate(45.519497,482.0426,169.65784)">
|
||||
<path
|
||||
d="m 481.66812,67.248428 c -8.02402,6.942398 -69.69934,65.128842 -22.98169,176.556102 h 46.54151 0.17102 C 552.11639,132.37779 490.4415,74.199982 482.4173,67.257279 l -0.74918,-0.0088 z"
|
||||
id="path3217"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="evenodd"
|
||||
fill="#ececec" />
|
||||
<path
|
||||
id="path3219"
|
||||
d="m 483.60232,139.38954 c -9.71862,0 -17.62307,8.60173 -17.62307,19.1668 0,10.56509 7.90445,19.15799 17.62307,19.15799 9.71866,0 17.6312,-8.5929 17.6312,-19.15799 0,-10.56507 -7.91254,-19.1668 -17.6312,-19.1668 z m 0,2.26637 c 8.59061,0 15.54639,7.5616 15.54639,16.90043 0,9.33883 -6.95578,16.8916 -15.54639,16.8916 -8.59063,0 -15.53829,-7.55277 -15.53829,-16.8916 3e-5,-9.33883 6.94766,-16.90043 15.53829,-16.90043 z"
|
||||
stroke-miterlimit="4"
|
||||
stroke-linecap="round"
|
||||
stroke-width="3"
|
||||
fill-rule="nonzero"
|
||||
fill="#cccccc" />
|
||||
<path
|
||||
id="path2419"
|
||||
d="m 450.56461,112.99554 11.31958,-22.607677 15.79473,-19.459793 4.47516,-3.720245 16.84775,19.173599 13.16223,23.180036 1.05304,4.86496 -62.91574,-0.28618"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="evenodd"
|
||||
fill="#ff0000" />
|
||||
<path
|
||||
id="path2408"
|
||||
d="m 444.24673,199.1337 c 0,0 -27.90408,-0.37778 -11.05633,76.69446 0,0 1.57947,-64.35379 16.32123,-56.41986"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="evenodd"
|
||||
fill="#ff0000" />
|
||||
<path
|
||||
d="m 519.91931,199.1337 c 0,0 27.90393,-0.37778 11.05628,76.69446 0,0 -1.57947,-64.35379 -16.32123,-56.41986"
|
||||
id="path2410"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="evenodd"
|
||||
fill="#ff0000" />
|
||||
<path
|
||||
id="path2423"
|
||||
d="m 451.88086,228.03723 6.84439,15.73953 46.85773,-0.28619 5.5281,-15.45334 z"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="evenodd"
|
||||
fill="#b3b3b3" />
|
||||
<path
|
||||
id="path3209"
|
||||
d="m 526.37933,206.86041 -5.26489,14.30869 -3.15894,-2.86179 -3.68548,1.71704 5.00171,-21.46298 8.95037,4.86496 c 0,0 15.53144,11.73312 3.42218,70.11252 7.10761,-60.3826 -5.52819,-66.67844 -5.26495,-66.67844 z"
|
||||
stroke-width="3"
|
||||
fill-rule="evenodd"
|
||||
fill="#d20000" />
|
||||
<path
|
||||
id="path3213"
|
||||
d="m 432.40066,274.96967 c 0,0 -2.62188,-62.42981 15.26826,-62.67194 1.97418,-0.0267 1.84271,6.86813 1.84271,6.86813 l -7.10764,1.71704 -5.52814,18.88746 z"
|
||||
stroke-width="3"
|
||||
fill-rule="evenodd"
|
||||
fill="#d20000" />
|
||||
<path
|
||||
id="path3232"
|
||||
d="m 493.94302,228.03854 c 1.05622,3.45911 1.68036,8.2858 1.37632,15.16526 0.2247,0.0861 0.4627,0.20685 0.70849,0.34527 l 9.55264,-0.062 4.45456,-12.44739 c -0.17968,-1.0635 -0.38726,-2.01275 -0.5863,-3.00116 z"
|
||||
stroke-width="3"
|
||||
fill-rule="evenodd"
|
||||
fill="#999999" />
|
||||
<path
|
||||
id="path3227"
|
||||
d="m 487.15973,197.82599 c -1.77692,-0.1431 -2.89917,0.15936 -2.89917,0.15936 l -1.31931,22.03522 c 0,0 6.3418,-1.36139 9.33274,8.02081 h 15.53827 c -5.04676,-25.58417 -15.54917,-29.80447 -20.65253,-30.21539 z"
|
||||
stroke-width="3"
|
||||
fill-rule="evenodd"
|
||||
fill="#cccccc" />
|
||||
<path
|
||||
id="path3241"
|
||||
d="m 452.62167,229.3186 5.21198,14.16486 7.29681,0.56662 -2.08478,-16.14798 z"
|
||||
stroke-width="3"
|
||||
fill-rule="evenodd"
|
||||
fill="#cccccc" />
|
||||
<path
|
||||
id="path2394"
|
||||
d="m 450.56461,113.5679 h 61.8627"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="evenodd"
|
||||
fill="none" />
|
||||
<path
|
||||
d="m 498.62714,156.85487 a 16.584475,18.028923 0 1 1 -33.16895,0 16.584475,18.028923 0 1 1 33.16895,0 z"
|
||||
id="path2400"
|
||||
stroke-miterlimit="4"
|
||||
stroke-linecap="round"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="nonzero"
|
||||
fill="#b3b3b3" />
|
||||
<path
|
||||
id="path2402"
|
||||
d="m 492.83575,156.85487 a 10.793091,11.733133 0 1 1 -21.58618,0 10.793091,11.733133 0 1 1 21.58618,0 z"
|
||||
stroke-miterlimit="4"
|
||||
stroke-linecap="round"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="nonzero"
|
||||
fill="#80e5ff" />
|
||||
<path
|
||||
id="path2417"
|
||||
d="m 452.67059,228.32342 h 58.44049"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="evenodd"
|
||||
fill="none" />
|
||||
<path
|
||||
id="rect2414"
|
||||
d="m 479.67346,198.56137 h 4.73844 v 77.26679 h -4.73844 z"
|
||||
stroke-miterlimit="4"
|
||||
stroke-linecap="round"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="nonzero"
|
||||
fill="#ff0000" />
|
||||
<path
|
||||
id="path2425"
|
||||
d="m 508.47864,224.60315 c 0,0 21.05969,-52.65588 4.21197,-103.30856 0.78974,89.85842 -21.84942,103.30856 -21.84942,103.30856 z"
|
||||
stroke-width="3"
|
||||
fill-rule="evenodd"
|
||||
fill="#cccccc" />
|
||||
<rect
|
||||
transform="matrix(0.18343478,0.20122734,-0.18343478,0.20122734,291.74655,87.84773)"
|
||||
y="-389.67041"
|
||||
x="672.60468"
|
||||
height="83.713531"
|
||||
width="34.470276"
|
||||
id="rect2429"
|
||||
stroke-miterlimit="4"
|
||||
stroke-linecap="round"
|
||||
stroke-width="3"
|
||||
fill-rule="nonzero"
|
||||
fill="#ffffff" />
|
||||
<path
|
||||
d="m 492.83575,156.85487 a 10.793091,11.733133 0 1 1 -21.58618,0 10.793091,11.733133 0 1 1 21.58618,0 z"
|
||||
id="path2431"
|
||||
stroke-miterlimit="4"
|
||||
stroke-linecap="round"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="nonzero"
|
||||
fill="none" />
|
||||
<path
|
||||
id="path2437"
|
||||
d="m 506.1095,109.2753 c 0,0 -8.16068,-23.180055 -23.69214,-35.485505 14.21524,29.762035 6.84436,35.485505 6.84436,35.485505 z"
|
||||
stroke-width="3"
|
||||
fill-rule="evenodd"
|
||||
fill="#d20000" />
|
||||
<path
|
||||
id="path3211"
|
||||
d="m 519.91931,199.1337 c 0,0 27.90393,-0.37778 11.05628,76.69446 0,0 -1.57947,-64.35379 -16.32123,-56.41986"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="evenodd"
|
||||
fill="none" />
|
||||
<path
|
||||
d="m 444.24673,199.1337 c 0,0 -27.90408,-0.37778 -11.05633,76.69446 0,0 1.57947,-64.35379 16.32123,-56.41986"
|
||||
id="path3215"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="evenodd"
|
||||
fill="none" />
|
||||
<path
|
||||
id="path3237"
|
||||
d="m 454.25006,108.41678 c 0,0 13.95203,-29.475862 25.53479,-37.202531 11.58286,-7.7267 -25.27154,37.774871 -25.53479,37.202531 z"
|
||||
stroke-width="3"
|
||||
fill-rule="evenodd"
|
||||
fill="#ffffff" />
|
||||
<path
|
||||
id="path3239"
|
||||
d="m 446.03223,186.74307 c -0.8245,-0.49765 -5.92191,-41.35026 6.70114,-66.77717 7.78332,-6.81024 18.37289,-3.22869 17.86972,-0.40473 -4.35901,24.46296 -19.66736,70.14168 -24.57086,67.1819 z"
|
||||
stroke-width="3"
|
||||
fill-rule="evenodd"
|
||||
fill="#ffffff" />
|
||||
<path
|
||||
id="path2382"
|
||||
d="m 481.66812,67.248428 c -8.02402,6.942398 -69.69934,65.128842 -22.98169,176.556102 h 46.54151 0.17102 C 552.11639,132.37779 490.4415,74.199982 482.4173,67.257279 l -0.74918,-0.0088 z"
|
||||
stroke-width="3"
|
||||
stroke="#000000"
|
||||
fill-rule="evenodd"
|
||||
fill="none" />
|
||||
</g>
|
||||
<metadata
|
||||
id="svg_1757">image/svg+xml</metadata>
|
||||
<path
|
||||
id="svg_1756"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#e73900"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1755"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#e73900"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1754"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#e73900"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1753"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#e78c00"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1752"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#e78c00"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1751"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#e7e100"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1750"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#e78c00"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1749"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#e7e100"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1748"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#e7e100"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1747"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#ffff9e"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1746"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#ffff9e"
|
||||
d="" />
|
||||
<path
|
||||
id="svg_1745"
|
||||
stroke-width="1pt"
|
||||
fill-rule="evenodd"
|
||||
fill="#ffff9e"
|
||||
d="" />
|
||||
<metadata
|
||||
transform="matrix(NaN,NaN,NaN,NaN,NaN,NaN) "
|
||||
id="svg_14">image/svg+xml</metadata>
|
||||
<path
|
||||
fill="#e73900"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_13"
|
||||
d="" />
|
||||
<path
|
||||
fill="#e73900"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_12"
|
||||
d="" />
|
||||
<path
|
||||
fill="#e73900"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_11"
|
||||
d="" />
|
||||
<path
|
||||
fill="#e78c00"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_10"
|
||||
d="" />
|
||||
<path
|
||||
fill="#e78c00"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_9"
|
||||
d="" />
|
||||
<path
|
||||
fill="#e7e100"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_8"
|
||||
d="" />
|
||||
<path
|
||||
fill="#e78c00"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_7"
|
||||
d="" />
|
||||
<path
|
||||
fill="#e7e100"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_6"
|
||||
d="" />
|
||||
<path
|
||||
fill="#e7e100"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_5"
|
||||
d="" />
|
||||
<path
|
||||
fill="#ffff9e"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_4"
|
||||
d="" />
|
||||
<g
|
||||
id="svg_1758" />
|
||||
<g
|
||||
id="svg_15">
|
||||
<path
|
||||
fill="#ffff9e"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_3"
|
||||
d="" />
|
||||
<path
|
||||
fill="#ffff9e"
|
||||
fill-rule="evenodd"
|
||||
stroke-width="1pt"
|
||||
id="svg_2"
|
||||
d="" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 17 KiB |
|
@ -0,0 +1,30 @@
|
|||
# Welcome to the Knative blog
|
||||
|
||||
<div style="text-align: right"><a href="./feed_rss_created.xml">RSS Feed</a></div>
|
||||
|
||||
Follow this blog to keep up-to-date with Knative.
|
||||
|
||||
* **Release and feature announcements:**
|
||||
|
||||
Learn about each Knative release, what's new and changed, and how to get started with the latest and greatest.
|
||||
|
||||
* **Articles:**
|
||||
|
||||
Read about Knative-centric features, tools, and related topics.
|
||||
|
||||
* **Steering Committee and TOC:**
|
||||
|
||||
Updates on Knative governance, technical direction, and the community.
|
||||
|
||||
* **Future and past social events:**
|
||||
|
||||
Find out where the Knative team will be talking next, and where they've been.
|
||||
|
||||
# Featured Posts
|
||||
|
||||
## Distributed tracing with Knative, OpenTelemetry and Jaeger
|
||||
|
||||
When trying to understand and diagnose our systems, one of the most basic tools we learn to lean on is the stack trace. Stack traces give us a structured view of the flow of logic that our program is executing in order to help us wrap our heads ...
|
||||
|
||||
[Read more :octicons-arrow-right-24:](articles/distributed-tracing.md){ .md-button }
|
||||
|
|
@ -40,7 +40,7 @@ Remember to check the [upgrade docs](https://knative.dev/docs/install/upgrade-in
|
|||
**Kubernetes minimum version changed to 1.17**
|
||||
|
||||
|
||||
<details><summary>Core API</summary>
|
||||
#### Core API
|
||||
|
||||
- [#9264](https://github.com/knative/serving/pull/9264) Add support for serviceAccountToken in projected volumes.
|
||||
- [#9072](https://github.com/knative/serving/pull/9072) Added RuntimeClassName feature flag.
|
||||
|
@ -50,9 +50,7 @@ Remember to check the [upgrade docs](https://knative.dev/docs/install/upgrade-in
|
|||
- [#9335](https://github.com/knative/serving/pull/9335) Responsive revision garbage collection is on (allowed) by default.
|
||||
- [knative/pkg#1464](https://github.com/knative/pkg/pull/1464) Reduce the cardinality of our webhook metrics to reduce memory usage.
|
||||
|
||||
</details>
|
||||
|
||||
<details><summary>Autoscaling</summary>
|
||||
#### Autoscaling
|
||||
|
||||
- [#9506](https://github.com/knative/serving/pull/9506),[#9502](https://github.com/knative/serving/pull/9502),[#9503](https://github.com/knative/serving/pull/9503),[#9566](https://github.com/knative/serving/pull/9566),[#9501](https://github.com/knative/serving/pull/9501),[#9488](https://github.com/knative/serving/pull/9488),[#9344](https://github.com/knative/serving/pull/9344),[#9338](https://github.com/knative/serving/pull/9338),[#9287](https://github.com/knative/serving/pull/9287),[#9184](https://github.com/knative/serving/pull/9184) Improving performance, memory allocation, testability and readability of the codebase
|
||||
- [#9419](https://github.com/knative/serving/pull/9419),[#9426](https://github.com/knative/serving/pull/9426),[#9434](https://github.com/knative/serving/pull/9434) Max Scale Limit configuration
|
||||
|
@ -61,9 +59,8 @@ Remember to check the [upgrade docs](https://knative.dev/docs/install/upgrade-in
|
|||
- Permit and use configuration to the number of cached connections in the Activator
|
||||
- [#9358](https://github.com/knative/serving/pull/9358) The absence of autoscaling annotations in both Service and Configuration's top-level metadata is now validated. This gives users an actionable error message but might potentially cause old (faulty) YAML to start to fail to be accepted now.
|
||||
|
||||
</details>
|
||||
|
||||
<details><summary>Networking</summary>
|
||||
#### Networking
|
||||
|
||||
- [knative/docs#2808](https://github.com/knative/docs/pull/2808) Net-contour is moved to stable stage
|
||||
- [#9194](https://github.com/knative/serving/pull/9194) Allow disabling AutoTLS with an annotation
|
||||
|
@ -77,13 +74,11 @@ Remember to check the [upgrade docs](https://knative.dev/docs/install/upgrade-in
|
|||
- [#8856](https://github.com/knative/serving/pull/8856) The `tagHeaderBasedRouting` flag in `config-network` is moved to `config-features` as `tag-header-based-routing`.
|
||||
- [knative-sandbox/net-istio#237](https://github.com/knative-sandbox/net-istio/pull/237) Add a new local gateway sharing same deployment as ingress Gateway for the future cluster local gateway deprecation
|
||||
|
||||
</details>
|
||||
|
||||
### Eventing v0.18
|
||||
|
||||
Eventing APIs graduated from v1beta1 to v1
|
||||
|
||||
<details><summary>Action Required for Upgrades</summary>
|
||||
#### Action Required for Upgrades
|
||||
|
||||
- [#4031](https://github.com/knative/eventing/pull/4031) You must run pre-install job prior to upgrading to get apiserversource to v1beta1 API.
|
||||
- [#3936](https://github.com/knative/eventing/pull/3936) Change storage version of remaining messaging.- resources from v1beta1 to v1:
|
||||
|
@ -104,21 +99,15 @@ Eventing APIs graduated from v1beta1 to v1
|
|||
- “Sequences.flows.knative.dev”
|
||||
- You must run pre-install job prior to upgrading to get flows.- resources to v1 API.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
<details><summary>New Features</summary>
|
||||
#### New Features
|
||||
|
||||
- [#3962](https://github.com/knative/eventing/pull/3962) Allow MTChannelBroker TTL to be configured via ENV variable.
|
||||
- [#4009](https://github.com/knative/eventing/pull/4009) PingSource adapter now uses bucket-based leader election
|
||||
- [#3987](https://github.com/knative/eventing/pull/3987) PingSource adapter deployment can now be customized at installation time
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
<details><summary>Bug Fixes</summary>
|
||||
#### Bug Fixes
|
||||
|
||||
- [#4115](https://github.com/knative/eventing/pull/4115) The default exponential backoff duration now matches the advertised algorithm in the DeliverySpec.BackoffDelay comments. User action required to evaluate if DeliverySpec.BackoffDelay settings in `Subscription.spec.delivery` remain appropriate
|
||||
- [#4112](https://github.com/knative/eventing/pull/4112) Channels and Brokers correctly retry on non 2xx HTTP status codes
|
||||
|
@ -131,14 +120,12 @@ Eventing APIs graduated from v1beta1 to v1
|
|||
- [#4030](https://github.com/knative/eventing/pull/4030) When not reconciling triggers not owned by my brokerclass, would print incorrect msg, logic was correct however, just wrong log message.
|
||||
- [#3870](https://github.com/knative/eventing/pull/3870) Update the spec to include v1 of the channelable.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
### Eventing Contributions v0.18
|
||||
|
||||
Code moved to the the [knative-sandbox](https://github.com/knative-sandbox/) Github organization
|
||||
|
||||
<details><summary>Action Required</summary>
|
||||
#### Action Required
|
||||
|
||||
- [knative/eventing#3924](https://github.com/knative/eventing/pull/3924),[knative/eventing#3925](https://github.com/knative/eventing/pull/3925) Change storage versions of flows.- resources from v1beta1 to v1
|
||||
- `channels.messaging.knative.dev`
|
||||
|
@ -147,22 +134,19 @@ Code moved to the the [knative-sandbox](https://github.com/knative-sandbox/) Git
|
|||
- `sequences.flows.knative.dev`
|
||||
- You must run pre-install job prior to upgrading to get eventing.- resources to v1 API.
|
||||
|
||||
</details>
|
||||
|
||||
<details><summary>New Features</summary>
|
||||
#### New Features
|
||||
|
||||
- [#1510](https://github.com/knative/eventing-contrib/pull/1510) Kafka Channel and Kafka Source support Kafka 2.6 (#1510, @pierDipi)
|
||||
|
||||
</details>
|
||||
|
||||
<details><summary>Bug Fixes</summary>
|
||||
#### Bug Fixes
|
||||
|
||||
- [#1536](https://github.com/knative/eventing-contrib/pull/1536) Cluster scoped KafkaChannel dispatcher is now created with 0 replicas in advance and will be scaled up with the creation of the first KafkaChannel. No manual operation is needed when upgrading.
|
||||
- [#1533](https://github.com/knative/eventing-contrib/pull/1533) When kafkasource goes into “sink not found” status, receiver adapter will be deleted. The receiver adapter will be created again when the sink is available and ready to receive events.
|
||||
|
||||
</details>
|
||||
|
||||
<details><summary>Code Moved to a different github organization</summary>
|
||||
#### Code Moved to a different github organization
|
||||
|
||||
- [#1576](https://github.com/knative/eventing-contrib/pull/1576) The AWSSQS source artifacts have moved to https://github.com/knative-sandbox/eventing-awssqs
|
||||
- [#1574](https://github.com/knative/eventing-contrib/pull/1574) The Camel artifacts have moved to https://github.com/knative-sandbox/eventing-camel
|
||||
|
@ -178,22 +162,20 @@ Code moved to the the [knative-sandbox](https://github.com/knative-sandbox/) Git
|
|||
- `triggers.eventing.knative.dev`
|
||||
- You must run pre-install job prior to upgrading to get eventing.- resources to v1 API.
|
||||
|
||||
</details>
|
||||
|
||||
### Client v0.18
|
||||
|
||||
Release 0.18.0 of the Knative client `kn` comes with some bug fixes plus some additional support for Knative eventing features
|
||||
|
||||
<details><summary>Eventing Support</summary>
|
||||
#### Eventing Support
|
||||
|
||||
The `kn channel` support has been extended by a `kn channel list-types` which shows you all the channel types that are available in the cluster.
|
||||
This information can be used to select the type when creating a channel with `kn channel create`.
|
||||
|
||||
Subscriptions which connect a sink with a channel can now be fully managed with `kn subscription` commands.
|
||||
|
||||
</details>
|
||||
|
||||
<details><summary>Aliases</summary>
|
||||
#### Aliases
|
||||
|
||||
For a better user experience we added some aliases for commonly used commands:
|
||||
|
||||
|
@ -210,29 +192,24 @@ For a better user experience we added some aliases for commonly used commands:
|
|||
| plugin | plugins |
|
||||
| list | ls |
|
||||
|
||||
</details>
|
||||
|
||||
<details><summary>Other Changes</summary>
|
||||
#### Other Changes
|
||||
|
||||
- You can use now `--annotation-service` and `--annotation-revision` to select the part of Knative service where you want to put an annotation on. With `--annotation` you add an annotation to both parts, the Knative service's annotation and to the annotation of the Pod template used to create revisions.
|
||||
- A new option `--scale-init` allows to specify the initial number of pods that should be created when a Knative service is created. By default this number is one, but you can set it to 0 if you don't want to create a pod during service creation.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
### Operator v0.18
|
||||
|
||||
|
||||
The new operator can now deploy the new version `v0.18` of serving and eventing components.
|
||||
|
||||
<details><summary>Bug Fixes</summary>
|
||||
#### Bug Fixes
|
||||
|
||||
- [#202](https://github.com/knative/operator/pull/202) Docs for publishing the operator in OperatorHub
|
||||
- [#299](https://github.com/knative/operator/pull/299) Don't wait for Ksvc to scale to zero
|
||||
|
||||
</details>
|
||||
|
||||
<details><summary>Other Changes</summary>
|
||||
#### Other Changes
|
||||
|
||||
- [#266](https://github.com/knative/operator/pull/266) Skip the version checking for network ingress deployment
|
||||
- [#275](https://github.com/knative/operator/pull/275) Bumping k8s to 1.18
|
||||
|
@ -240,8 +217,6 @@ The new operator can now deploy the new version `v0.18` of serving and eventing
|
|||
- [#278](https://github.com/knative/operator/pull/278) Transform jobs first so images are overridable
|
||||
- [#280](https://github.com/knative/operator/pull/280) Pin deps to release-0.18
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
### Learn more
|
||||
Knative is an open source project that anyone in the [community](https://knative.dev/community/) can use, improve, and enjoy. We'd love you to join us!
|
|
@ -0,0 +1,208 @@
|
|||
---
|
||||
title: "v0.2 release"
|
||||
linkTitle: "v0.2 release"
|
||||
date: 2018-11-14
|
||||
description: "The Knative v0.2 release announcement"
|
||||
type: "blog"
|
||||
---
|
||||
|
||||
<article class="h-entry">
|
||||
|
||||
|
||||
<section data-field="subtitle" class="p-summary">
|
||||
|
||||
Improved pluggability, autoscaling, stability, and performance
|
||||
|
||||
</section>
|
||||
|
||||
<section data-field="body" class="e-content">
|
||||
|
||||
<section name="2748" class="section section--body section--first section--last">
|
||||
|
||||
<div class="section-divider">
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-content">
|
||||
|
||||
<div class="section-inner sectionLayout--insetColumn">
|
||||
|
||||
<h3 name="d4ac" id="d4ac" class="graf graf--h3 graf--leading graf--title">Announcing Knative v0.2 Release</h3>
|
||||
|
||||
<p name="93a1" id="93a1" class="graf graf--p graf-after--h3">Improved pluggability, autoscaling, stability, and performance</p>
|
||||
|
||||
<p name="42e2" id="42e2" class="graf graf--p graf-after--p">We are excited to announce a new release of Knative, the set of middleware components for building modern applications on Kubernetes. The 0.2 release of Knative is the first significant update since the project’s launch in July. It represents months of hard work by the entire Knative community to address our learnings from the growing number of Knative deployments.</p>
|
||||
|
||||
<figure name="52f3" id="52f3" class="graf graf--figure graf--layoutOutsetLeft graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 441px; max-height: 356px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-image-id="knative.png" data-width="441" data-height="356" data-is-featured="true" src="/blog/images/knative.png">
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="42db" id="42db" class="graf graf--p graf-after--figure">The most exciting aspect of the 0.2 release is the inclusion of eventing. The Eventing component complements the other two foundational blocks already defined by Knative: Serving and Build. We look forward to the new types of events and innovative solutions the community will develop using this new capability.</p>
|
||||
|
||||
<p name="6aed" id="6aed" class="graf graf--p graf-after--p">Serving made significant improvements “under the hood,” encapsulating key areas of Knative into subsystems with new internal APIs to enable support for pluggable networking, autoscaling, and caching.</p>
|
||||
|
||||
<p name="bb3e" id="bb3e" class="graf graf--p graf-after--p">The complete release notes are available in Knative <a href="https://github.com/knative/serving/releases/tag/v0.2.1" data-href="https://github.com/knative/serving/releases/tag/v0.2.1" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Serving</a>, <a href="https://github.com/knative/build/releases/tag/v0.2.0" data-href="https://github.com/knative/build/releases/tag/v0.2.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Build</a>, and <a href="https://github.com/knative/eventing/releases/tag/v0.2.0" data-href="https://github.com/knative/eventing/releases/tag/v0.2.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Eventing</a> repositories. Here are a few highlights:</p>
|
||||
|
||||
<p name="02e7" id="02e7" class="graf graf--p graf-after--p">
|
||||
|
||||
<strong class="markup--strong markup--p-strong">New Eventing Resource Model <br>
|
||||
|
||||
</strong>The eventing repo went through a significant rework of the resource model, resulting in migration of sources into Custom Resource Definitions (CRDs). Now, eventing includes a sophisticated use of standard Kubernetes concepts, resulting in better validation, cleaner interfaces, and RBAC support. The new architecture uses a simpler object model that is centered around channels and subscriptions.</p>
|
||||
|
||||
<p name="92d4" id="92d4" class="graf graf--p graf-after--p">
|
||||
|
||||
<strong class="markup--strong markup--p-strong">Looser Coupling<br>
|
||||
|
||||
</strong>One of the pieces of positive feedback we received on v0.1 was the “tasteful” choices defining Knative building blocks. In v0.2, Knative leans into this even further to enable operators to install the Build, Serving, and Eventing components independent of one another. The contract that enables these loose couplings between Knative components will also enable third party integrations over time, such as using a non-Knative Build with Serving, or delivering events to non-Serving deployments. We are excited to see what direction the community takes this.</p>
|
||||
|
||||
<p name="98f1" id="98f1" class="graf graf--p graf-after--p">
|
||||
|
||||
<strong class="markup--strong markup--p-strong">Pluggable Subsystems</strong>
|
||||
|
||||
<br>We also got a lot of feedback about wanting to customize Knative. The goal was always to support some measure of pluggability, so customization was significantly improved in v0.2. We introduced 3 new internal APIs in v0.2 to separate our core resource model from the subsystems that implement them: Networking, Autoscaling, and Caching. Networking enables developers to replace our Istio dependency with alternative ingress implementations. Autoscaling enables developers to replace our “cheap and cheerful” autoscaler with one of their own designs. Caching enables developers to employ image caching strategies to preload container images across their cluster (no implementation bundled, so this is a pure extension-point).</p>
|
||||
|
||||
<p name="d31d" id="d31d" class="graf graf--p graf-after--p">
|
||||
|
||||
<strong class="markup--strong markup--p-strong">Improved Cold-Starts</strong>
|
||||
|
||||
<br>Two of the dominant factors in cold-start performance are side-car injection and image pull latency. With their 1.0.2 release, Istio has made progress on reducing the Envoy programming time. In addition, we’ve made it possible to install Knative with side-car injection disabled. To enable folks to combat image pull latency, we have exposed a new extension point called an “Image” resource (part of knative/caching), which contains all the information needed for a controller to pre-load user images across a cluster. Caching is another feature we are excited to see the community build upon.</p>
|
||||
|
||||
<p name="f099" id="f099" class="graf graf--p graf-after--p">
|
||||
|
||||
<strong class="markup--strong markup--p-strong">Autoscaling</strong>
|
||||
|
||||
<br>We have replaced the previous per-Revision autoscalers with a single shared autoscaler. The new autoscaler is based on the same logic as the previous autoscaler, but has evolved to be purely metrics driven (including 0->1->0), eliminating the unnecessary Revision servingState field. We have replaced ConcurrencyModel (Single or Multi) with an integer ContainerConcurrency field. This allows limiting concurrency to values other than 1 for certain use cases (for example, limited thread pools).</p>
|
||||
|
||||
<p name="44ae" id="44ae" class="graf graf--p graf-after--p">
|
||||
|
||||
<strong class="markup--strong markup--p-strong">Build</strong>
|
||||
|
||||
<br>Knative Build added many incremental improvements, including the new ClusterBuildTemplate resource. Operators are now able to install a set of BuildTemplates one time instead of once per-Namespace. Build template parameters can now also apply to build step image names. New features of the Build spec allow users to specify a build-wide timeout, node selectors, and affinity. Last but not least, build status has been extended to report per-step build progress and build pending times.</p>
|
||||
|
||||
<h3 name="7b11" id="7b11" class="graf graf--h3 graf-after--p">Knative at KubeCon</h3>
|
||||
|
||||
<p name="1629" id="1629" class="graf graf--p graf-after--h3">Come and talk to us! There are a number of Knative sessions at the upcoming KubeCon conferences, both in Shanghai and Seattle.</p>
|
||||
|
||||
<p name="2e0b" id="2e0b" class="graf graf--p graf-after--p">
|
||||
|
||||
<strong class="markup--strong markup--p-strong">Shanghai</strong>
|
||||
|
||||
</p>
|
||||
|
||||
<ul class="postList">
|
||||
|
||||
<li name="7bd0" id="7bd0" class="graf graf--li graf-after--p">
|
||||
|
||||
<a href="https://kccncchina2018english.sched.com/event/FuKU/botless-a-serverless-chatbot-framework-scott-nichols-google" data-href="https://kccncchina2018english.sched.com/event/FuKU/botless-a-serverless-chatbot-framework-scott-nichols-google" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Botless: A Serverless Chatbot Framework</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p name="7514" id="7514" class="graf graf--p graf-after--li">
|
||||
|
||||
<strong class="markup--strong markup--p-strong">Seattle</strong>
|
||||
|
||||
</p>
|
||||
|
||||
<ul class="postList">
|
||||
|
||||
<li name="4329" id="4329" class="graf graf--li graf-after--p">
|
||||
|
||||
<a href="https://kccna18.sched.com/event/Grbz/intro-knative-productivity-bof-srinivas-v-hegde-adriano-cunha-google" data-href="https://kccna18.sched.com/event/Grbz/intro-knative-productivity-bof-srinivas-v-hegde-adriano-cunha-google" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Intro: Knative Productivity BoF</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="1b05" id="1b05" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://kccna18.sched.com/event/Gra9/knative-scaling-from-0-to-infinity-joseph-burnett-mark-chmarny-google" data-href="https://kccna18.sched.com/event/Gra9/knative-scaling-from-0-to-infinity-joseph-burnett-mark-chmarny-google" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Knative: Scaling From 0 to Infinity</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="4549" id="4549" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://kccna18.sched.com/event/GrVt/machine-learning-model-serving-and-pipeline-using-knative-animesh-singh-ibm" data-href="https://kccna18.sched.com/event/GrVt/machine-learning-model-serving-and-pipeline-using-knative-animesh-singh-ibm" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Machine Learning Model Serving and Pipeline Using Knative</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="799d" id="799d" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://kccna18.sched.com/event/GraR/tutorial-getting-your-hands-dirty-with-knative-bas-tichelaar-ade-mochtar-instruqt" data-href="https://kccna18.sched.com/event/GraR/tutorial-getting-your-hands-dirty-with-knative-bas-tichelaar-ade-mochtar-instruqt" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Tutorial: Getting Your Hands Dirty with Knative</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="34f6" id="34f6" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://kccna18.sched.com/event/GrSt/building-container-images-on-your-kubernetes-cluster-with-knative-build-gareth-rushgrove-docker" data-href="https://kccna18.sched.com/event/GrSt/building-container-images-on-your-kubernetes-cluster-with-knative-build-gareth-rushgrove-docker" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Building Container Images on Your Kubernetes Cluster with Knative Build</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="83cf" id="83cf" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://kccna18.sched.com/event/GraI/how-to-build-deep-learning-inference-through-knative-serverless-framework-huamin-chen-yehuda-sadeh-weinraub-red-hat" data-href="https://kccna18.sched.com/event/GraI/how-to-build-deep-learning-inference-through-knative-serverless-framework-huamin-chen-yehuda-sadeh-weinraub-red-hat" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">How to Build Deep Learning Inference Through Knative Serverless Framework</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="25e8" id="25e8" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://kccna18.sched.com/event/GraC/t-mobile-store-locator-serverless-journey-with-knative-and-kubernetes-ram-gopinathan-t-mobile" data-href="https://kccna18.sched.com/event/GraC/t-mobile-store-locator-serverless-journey-with-knative-and-kubernetes-ram-gopinathan-t-mobile" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">T-Mobile Store Locator Serverless Journey with Knative and Kubernetes</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="e7e0" id="e7e0" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://kccna18.sched.com/event/GraF/birds-of-a-feather-knative-jessie-zhu-google" data-href="https://kccna18.sched.com/event/GraF/birds-of-a-feather-knative-jessie-zhu-google" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Birds of a Feather: Knative</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="e022" id="e022" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://kccna18.sched.com/event/Grdv/deep-dive-knative-productivity-bof-jessie-zhu-adriano-cunha-google" data-href="https://kccna18.sched.com/event/Grdv/deep-dive-knative-productivity-bof-jessie-zhu-adriano-cunha-google" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Deep Dive: Knative Productivity BoF</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="a3b3" id="a3b3" class="graf graf--li graf-after--li graf--trailing">
|
||||
|
||||
<a href="https://kccna18.sched.com/event/IRr7/deploying-serverless-apps-to-kubernetes-with-knative-additional-registration-fee-required" data-href="https://kccna18.sched.com/event/IRr7/deploying-serverless-apps-to-kubernetes-with-knative-additional-registration-fee-required" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Deploying serverless apps to Kubernetes with Knative</a> (Additional registration and fees required)</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
|
||||
<p>By <a href="https://medium.com/@mchmarny_google" class="p-author h-card">Mark Chmarny</a> on <a href="https://medium.com/p/963f276af58e">
|
||||
|
||||
<time class="dt-published" datetime="2018-11-14T02:26:34.071Z">November 14, 2018</time>
|
||||
|
||||
</a>.</p>
|
||||
|
||||
<p>
|
||||
|
||||
<a href="https://medium.com/@mchmarny_google/https-medium-com-knative-v0-2-963f276af58e" class="p-canonical">Canonical link</a>
|
||||
|
||||
</p>
|
||||
|
||||
<p>Exported from <a href="https://medium.com">Medium</a> on January 8, 2019.</p>
|
||||
|
||||
</footer>
|
||||
|
||||
</article>
|
|
@ -1,8 +1,8 @@
|
|||
---
|
||||
title: "v0.21 release"
|
||||
linkTitle: "v0.21 release"
|
||||
Author: "[Carlos Santana](https://twitter.com/csantanapr)"
|
||||
Author handle: https://github.com/csantanapr
|
||||
author: "[Carlos Santana](https://twitter.com/csantanapr)"
|
||||
author handle: https://github.com/csantanapr
|
||||
date: 2021-02-26
|
||||
description: "Knative v0.21 release announcement"
|
||||
type: "blog"
|
||||
|
@ -190,7 +190,7 @@ Please refer to issue [#1144](https://github.com/knative/client/issues/1144) (an
|
|||
|
||||
**ACTION REQUIRED**
|
||||
|
||||
If you rely on client-side revision naming, you have to add `--revision-name {{.Service}}-{{.Random 5}}-{{.Generation}}` to `kn service create` to get back the previous default behaviour. However, in most of all cases, you shound not worry about whether the revision names are created by `kn` or by the Knative serving controller.
|
||||
If you rely on client-side revision naming, you have to add `--revision-name {{.Service}}-{{.Random 5}}-{{.Generation}}` to `kn service create` to get back the previous default behaviour. However, in most of all cases, you shound not worry about whether the revision names are created by `kn` or by the Knative serving controller
|
||||
|
||||
In case of issues with this change, please let us know and we will fix it asap. We are committed to supporting you with any issues caused by this change.
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
---
|
||||
title: "v0.25 release"
|
||||
linkTitle: "v0.25 release"
|
||||
Author: "[Carlos Santana](https://twitter.com/csantanapr)"
|
||||
Author handle: https://github.com/csantanapr
|
||||
date: 2021-08-22
|
||||
author: "[Carlos Santana](https://twitter.com/csantanapr)"
|
||||
author handle: https://github.com/csantanapr
|
||||
date: "2021-08-22"
|
||||
description: "Knative v0.25 release announcement"
|
||||
type: "blog"
|
||||
image: knative-eventing.png
|
|
@ -0,0 +1,161 @@
|
|||
---
|
||||
title: "v0.3 release"
|
||||
linkTitle: "v0.3 release"
|
||||
date: "2019-01-15"
|
||||
description: "The Knative v0.3 release announcement"
|
||||
type: "blog"
|
||||
---
|
||||
|
||||
<article class="h-entry">
|
||||
|
||||
<section data-field="subtitle" class="p-summary">
|
||||
|
||||
Knative’s momentum continues! Once again, we are excited to announce a new release of Knative. After a series of architectural changes…
|
||||
|
||||
</section>
|
||||
|
||||
<section data-field="body" class="e-content">
|
||||
|
||||
<section name="b504" class="section section--body section--first section--last">
|
||||
|
||||
<div class="section-divider">
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-content">
|
||||
|
||||
<div class="section-inner sectionLayout--insetColumn">
|
||||
|
||||
<h3 name="d708" id="d708" class="graf graf--h3 graf--leading graf--title">Announcing Knative v0.3 Release</h3>
|
||||
|
||||
<p name="feb7" id="feb7" class="graf graf--p graf-after--h3">Knative’s momentum continues! Once again, we are excited to announce a new release of Knative. After a series of architectural changes announced in the previous release, v0.3 implements many of the learnings from the growing number of Knative deployments, increases operational control, and improves stability.</p>
|
||||
|
||||
<p name="7e01" id="7e01" class="graf graf--p graf-after--p">As we move to a more predictable release schedule based on six week cadence, Knative releases will now be smaller and more frequent. We did this to enable a tighter feedback loop with our users and allow for smoother course corrections as we continue to learn from our growing number of users.</p>
|
||||
|
||||
<figure name="31b7" id="31b7" class="graf graf--figure graf--layoutOutsetLeft graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 200px; max-height: 200px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<img class="graf-image" data-image-id="knative" data-width="200" data-height="200" src="/blog/images/knative.png">
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="de1e" id="de1e" class="graf graf--p graf-after--figure">Starting with the v0.3 release, Knative now requires Kubernetes 1.11, due to the use of `/status` sub-resource support, which went Beta in Kubernetes 1.11 and fixes a long-standing Kubernetes CRD bug.</p>
|
||||
|
||||
<p name="e124" id="e124" class="graf graf--p graf-after--p">The complete set of Knative v0.3 release notes outlining the new features as well as bug fixes and architectural changes are available in the <a href="https://github.com/knative/serving/releases/tag/v0.3.0" data-href="https://github.com/knative/serving/releases/tag/v0.3.0" class="markup--anchor markup--p-anchor" rel="noopener">Serving</a>, <a href="https://github.com/knative/build/releases/tag/v0.3.0" data-href="https://github.com/knative/build/releases/tag/v0.3.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Build</a>, and <a href="https://github.com/knative/eventing/releases/tag/v0.3.0" data-href="https://github.com/knative/eventing/releases/tag/v0.3.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Eventing</a> repositories. Here are a few highlights:</p>
|
||||
|
||||
<h3 name="c10b" id="c10b" class="graf graf--h3 graf-after--p">Serving API</h3>
|
||||
|
||||
<p name="0183" id="0183" class="graf graf--p graf-after--h3">With the v0.3 release, Knative now exposes a few additional parameters in its API. These include explicit Revision timeouts and the ability to specify the port for incoming traffic to the user container, which Knative previously exposed to the container using the “$PORT” environment variable.</p>
|
||||
|
||||
<p name="3fd8" id="3fd8" class="graf graf--p graf-after--p">An even bigger addition is support for the <a href="https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" data-href="https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Kubernetes resources spec</a>, which allows you to specify reservations and limits on the user container. Besides allowing the service to specify how much CPU and memory (RAM) it needs or limit how much it can use; this also allows developers to request access to <a href="https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus/" data-href="https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">hardware accelerators like GPU</a> if their cluster includes nodes configured with that capability.</p>
|
||||
|
||||
<p name="ca9e" id="ca9e" class="graf graf--p graf-after--p">In v0.3, Knative is also more proactive about rolling out operator changes. Changes to serving ConfigMaps are now immediately reconciled and rolled out.</p>
|
||||
|
||||
<h3 name="3ae8" id="3ae8" class="graf graf--h3 graf-after--p">Autoscaling</h3>
|
||||
|
||||
<p name="110d" id="110d" class="graf graf--p graf-after--h3">Building on the new single shared autoscaler introduced in the previous release, v0.3 introduces a more aggressive scale-to-zero strategy, which will by default scale Revisions down to zero pods after only 30 seconds of inactivity. The default Knative Pod Autoscaler (KPA) now supports revision-level concurrency targets.</p>
|
||||
|
||||
<p name="5db5" id="5db5" class="graf graf--p graf-after--p">As shown in our <a href="https://youtu.be/OPSIPr-Cybs" data-href="https://youtu.be/OPSIPr-Cybs" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Kubecon demo</a>, Knative now offers Horizontal Pod Autoscaler (HPA). This is useful for those who need to opt-out of KPA and use CPU instead of request rate as a scaling metric. (Note: HPA-class Revisions will not scale to zero).</p>
|
||||
|
||||
<p name="716d" id="716d" class="graf graf--p graf-after--p">Lastly, you can now also mutate `PodAutoscaler` specs in-place to adjust the scale bounds and other parameters.</p>
|
||||
|
||||
<h3 name="4108" id="4108" class="graf graf--h3 graf-after--p">Networking</h3>
|
||||
|
||||
<p name="7ce7" id="7ce7" class="graf graf--p graf-after--h3">A frequently-requested feature is the ability to deploy services which are not exposed externally and can only be accessed by other services in the cluster. In v0.3, Routes <a href="../../../../../docs/reference/serving-api/#RouteStatus">configured</a> to use the `svc.cluster.local` domain will only be exposed to the cluster-local Istio gateway. The cluster-local gateway will keep the deployed service inaccessible from outside the cluster. Developers can also use the `serving.knative.dev/visibility=cluster-local` label on their Route or Service to enable this behaviour.</p>
|
||||
|
||||
<p name="09bc" id="09bc" class="graf graf--p graf-after--p">Knative is also deprecating its dedicated Istio gateway. In v0.3 release, Knative will still expose public routes to both the deprecated gateway and the default Istio gateway. Starting with next release however, Knative will remove the deprecated gateway to further reduce overhead and avoid the additional cost of public IP. (Note, you may have to update the gateway IP in your DNS mappings).</p>
|
||||
|
||||
<h3 name="d066" id="d066" class="graf graf--h3 graf-after--p">Eventing</h3>
|
||||
|
||||
<p name="7ef7" id="7ef7" class="graf graf--p graf-after--h3">With the inclusion of Eventing in the previous release, there has been a significant focus on extending the number of and documenting available external event sources which can be installed in Knative as Kubernetes Custom Resource Definitions (CRDs). The complete list of currently supported event sources can be found <a href="../../../../../docs/developer/eventing/sources#sources">here</a>.</p>
|
||||
|
||||
<h3 name="87ba" id="87ba" class="graf graf--h3 graf-after--p">Build</h3>
|
||||
|
||||
<p name="9e6a" id="9e6a" class="graf graf--p graf-after--h3">The Knative Build component can now support both single `source` and multiple input `sources`. If multiple sources are requested, each will be fetched in declared order and placed into a directory under `/workspace` named after the source’s name field. The Build controller is also now subject to the PodSecurityPolicy which enables cluster operators to specify further limitations.</p>
|
||||
|
||||
<h3 name="6e57" id="6e57" class="graf graf--h3 graf-after--p">Monitoring</h3>
|
||||
|
||||
<p name="8ad2" id="8ad2" class="graf graf--p graf-after--h3">Metric labels should now be consistent across all of the Knative components. Also, in addition to the default Prometheus metric target, Knative control plane metrics (from Reconciler, Autoscaler, and Activator) can now be exported directly to Stackdriver.</p>
|
||||
|
||||
<h3 name="7ec8" id="7ec8" class="graf graf--h3 graf-after--p">Learn more</h3>
|
||||
|
||||
<ul class="postList">
|
||||
|
||||
<li name="c00d" id="c00d" class="graf graf--li graf-after--h3">
|
||||
|
||||
<a href="../../../../../docs/" data-href="../../../../../docs/" class="markup--anchor markup--li-anchor" rel="noopener">Welcome to Knative</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="d88a" id="d88a" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="../../../../../docs/#documentation" data-href="../../../../../docs/#documentation" class="markup--anchor markup--li-anchor" rel="noopener">Getting started documentation</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="a9ca" id="a9ca" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="../../../../../docs/#samples-and-demos" data-href="../../../../../docs/#samples-and-demos" class="markup--anchor markup--li-anchor" rel="noopener">Samples and demos</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="fe75" id="fe75" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="../../../../../contributing/#meetings-and-work-groups" data-href="../../../../../contributing/#meetings-and-work-groups" class="markup--anchor markup--li-anchor" rel="noopener">Knative meetings and work groups</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="cf03" id="cf03" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="../../../../../contributing/#questions-and-issues" data-href="../../../../../contributing/README.md#questions-and-issues" class="markup--anchor markup--li-anchor" rel="noopener">Questions and issues</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="19ce" id="19ce" class="graf graf--li graf-after--li">Knative on Twitter (<a href="https://twitter.com/KnativeProject" data-href="https://twitter.com/KnativeProject" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">@KnativeProject</a>)</li>
|
||||
|
||||
<li name="5fcb" id="5fcb" class="graf graf--li graf-after--li">Knative on <a href="https://stackoverflow.com/questions/tagged/knative" data-href="https://stackoverflow.com/questions/tagged/knative" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">StackOverflow</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="3813" id="3813" class="graf graf--li graf-after--li graf--trailing">Knative <a href="https://slack.knative.dev/" data-href="https://slack.knative.dev/" class="markup--anchor markup--li-anchor" rel="noopener">Slack</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
|
||||
<p>By <a href="https://medium.com/@mchmarny_google" class="p-author h-card">Mark Chmarny</a> on <a href="https://medium.com/p/18d738c225c3">
|
||||
|
||||
<time class="dt-published" datetime="2019-01-15T17:58:06.784Z">January 15, 2019</time>
|
||||
|
||||
</a>.</p>
|
||||
|
||||
<p>
|
||||
|
||||
<a href="https://medium.com/@mchmarny_google/announcing-knative-v0-3-release-18d738c225c3" class="p-canonical">Canonical link</a>
|
||||
|
||||
</p>
|
||||
|
||||
<p>Exported from <a href="https://medium.com">Medium</a> on January 23, 2019.</p>
|
||||
|
||||
</footer>
|
||||
|
||||
</article>
|
|
@ -0,0 +1,154 @@
|
|||
---
|
||||
title: "v0.4 release"
|
||||
linkTitle: "v0.4 release"
|
||||
date: 2019-02-20
|
||||
description: "The Knative v0.4 release announcement"
|
||||
type: "blog"
|
||||
---
|
||||
|
||||
<article class="h-entry">
|
||||
|
||||
<section data-field="subtitle" class="p-summary">
|
||||
|
||||
Knative v0.4 release responds to ongoing and direct feedback from the growing number of deployments
|
||||
|
||||
</section>
|
||||
|
||||
<section data-field="body" class="e-content">
|
||||
|
||||
<section name="b504" class="section section--body section--first section--last">
|
||||
|
||||
<div class="section-divider">
|
||||
|
||||
<hr class="section-divider">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-content">
|
||||
|
||||
<div class="section-inner sectionLayout--insetColumn">
|
||||
|
||||
<h3 name="d708" id="d708" class="graf graf--h3 graf--leading graf--title">Announcing Knative v0.4 Release</h3>
|
||||
|
||||
<p name="feb7" id="feb7" class="graf graf--p graf-after--h3">Once again, we are excited to announce updates to <a href="https://www.knative.dev/" data-href="https://www.knative.dev/" class="markup--anchor markup--p-anchor" rel="nofollow noopener">Knative</a>. The v0.4 release continues to respond to ongoing direct feedback from the growing number of deployments. In each release, Knative implements these learnings based on new use-cases that are now being addressed with our platform.</p>
|
||||
|
||||
<figure name="545f" id="545f" class="graf graf--figure graf--layoutOutsetLeft graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 200px; max-height: 200px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="knative" data-width="200" data-height="200">
|
||||
<img src="/blog/images/knative.png">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="0fec" id="0fec" class="graf graf--p graf-after--figure">The areas where we received the most feedback were: configuration and secret management.</p>
|
||||
|
||||
<p name="f70a" id="f70a" class="graf graf--p graf-after--p">As Knative maintains its predictable release cadence, the ability to preserve the settings from your previous installation (e.g. domain) became even more important. So, in the v0.4 release, Knative now preserves previously set ConfigMap values during the update process. Starting with subsequent releases, users should be able to simply apply the latest knative/serving release and continue using their previous settings.</p>
|
||||
|
||||
<p name="28b2" id="28b2" class="graf graf--p graf-after--p">With regards to secret management, Knative users have frequently asked for more flexibility with Secrets (for confidential data) and ConfigMaps (for non-confidential data). To address that need, Knative has now <a href="https://www.knative.dev/docs/serving/samples/secrets-go" data-href="https://www.knative.dev/docs/serving/samples/secrets-go" class="markup--anchor markup--p-anchor" rel="nofollow noopener">added support</a> for mounting Secrets and ConfigMaps as volumes.</p>
|
||||
|
||||
<figure name="94b1" id="94b1" class="graf graf--figure graf--layoutOutsetLeft graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 200px; max-height: 200px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="grpc" data-width="200" data-height="200">
|
||||
|
||||
<img src="/blog/images/grpc.png">
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="c7c6" id="c7c6" class="graf graf--p graf-after--figure">Another area where we had a lot of feedback almost since the initial release of Knative was the need for additional network protocol support besides basic HTTP. I’m happy to say that with the v0.4 release Knative now also <a href="https://www.knative.dev/docs/serving/samples/grpc-ping-go" data-href="https://www.knative.dev/docs/serving/samples/grpc-ping-go" class="markup--anchor markup--p-anchor" rel="nofollow noopener">supports</a> both HTTP2 and gRPC for ports named h2c. There are still some challenges with streaming RPC during cold-starts so we look forward to your feedback.</p>
|
||||
|
||||
<p name="b291" id="b291" class="graf graf--p graf-after--p">Additionally, Knative also now <a href="https://github.com/mchmarny/knative-ws-example" data-href="https://github.com/mchmarny/knative-ws-example" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">supports</a> the ability to upgrade an inbound HTTP connection for WebSockets. This change involved plumbing through various layers of serving infrastructure, including activator and Istio VirtualService, so we are happy to finally land this often requested feature in Knative.</p>
|
||||
|
||||
<p name="6238" id="6238" class="graf graf--p graf-after--p">As with previous releases, Knative autoscaling continues to be an area of focus. The v0.4 release is no different, and once again, it improves on cold-start times by immediately scaling up when the autoscaler gets stats from activator. This reduces the latency when Knative must activate a previously scaled-to-zero workload. Additionally, the Serving activator also now throttles traffic it sends to scaled to zero pods to avoid overloading a single pod during initial large bursts of traffic.</p>
|
||||
|
||||
<figure name="2e47" id="2e47" class="graf graf--figure graf--layoutOutsetLeft graf-after--p">
|
||||
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 200px; max-height: 200px;">
|
||||
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="istio" data-width="200" data-height="200">
|
||||
|
||||
<img src="/blog/images/istio.png" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail">
|
||||
|
||||
</figure>
|
||||
|
||||
<p name="353e" id="353e" class="graf graf--p graf-after--figure">As we indicated in the previous release, starting with the v0.4 release, Knative removes the customized Istio IngressGateway to enhance support for multiple versions of Istio and to reduce the number of needed load balancers. Users upgrading from the v0.3 release will need to reconfigure their DNS to point to the IP address exposed by istio-ingressgateway before upgrading, and remove the knative-ingressgateway Service and Deployment.</p>
|
||||
|
||||
<p name="c01a" id="c01a" class="graf graf--p graf-after--p">Finally, the v0.4 release of Knative serving adds an option to change the default ClusterIngress controller in the config-network ConfigMap from Istio if another controller is necessary.</p>
|
||||
|
||||
<p name="c64f" id="c64f" class="graf graf--p graf-after--p">In Eventing, the in-memory channel is now buffering events in memory rather than acting as a proxy. This change improves efficiency and throughput of event sources by reducing client blocking.</p>
|
||||
|
||||
<p name="38b9" id="38b9" class="graf graf--p graf-after--p">The complete set of Knative v0.4 release notes outlining the new features as well as bug fixes are available in the <a href="https://github.com/knative/serving/releases/tag/v0.4.0" data-href="https://github.com/knative/serving/releases/tag/v0.4.0" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Serving</a>, <a href="https://github.com/knative/build/releases/tag/v0.4.0" data-href="https://github.com/knative/build/releases/tag/v0.4.0" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Build</a>, and <a href="https://github.com/knative/eventing/releases/tag/v0.4.0" data-href="https://github.com/knative/eventing/releases/tag/v0.4.0" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Eventing</a> repositories.</p>
|
||||
|
||||
<h3 name="363c" id="363c" class="graf graf--h3 graf-after--p">Learn more</h3>
|
||||
|
||||
<ul class="postList">
|
||||
|
||||
<li name="c00d" id="c00d" class="graf graf--li graf-after--h3">
|
||||
|
||||
<a href="https://www.knative.dev/docs#welcome-to-knative" data-href="https://www.knative.dev/docs#welcome-to-knative" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener">Welcome to Knative</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="d88a" id="d88a" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://www.knative.dev/docs#documentation" data-href="https://www.knative.dev/docs#documentation" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener">Getting started documentation</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="a9ca" id="a9ca" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://www.knative.dev/docs#samples-and-demos" data-href="https://www.knative.dev/docs#samples-and-demos" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener">Samples and demos</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="fe75" id="fe75" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://www.knative.dev/contributing/#meetings-and-work-groups" data-href="https://www.knative.dev/contributing/#meetings-and-work-groups" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener">Knative meetings and work groups</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="cf03" id="cf03" class="graf graf--li graf-after--li">
|
||||
|
||||
<a href="https://www.knative.dev/contributing/#questions-and-issues" data-href="https://www.knative.dev/contributing/#questions-and-issues" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener">Questions and issues</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="19ce" id="19ce" class="graf graf--li graf-after--li">Knative on Twitter (<a href="https://twitter.com/KnativeProject" data-href="https://twitter.com/KnativeProject" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener" target="_blank">@KnativeProject</a>)</li>
|
||||
|
||||
<li name="5fcb" id="5fcb" class="graf graf--li graf-after--li">Knative on <a href="https://stackoverflow.com/questions/tagged/knative" data-href="https://stackoverflow.com/questions/tagged/knative" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener" target="_blank">StackOverflow</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li name="3813" id="3813" class="graf graf--li graf-after--li graf--trailing">Knative <a href="https://slack.knative.dev/" data-href="https://slack.knative.dev/" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener" target="_blank">Slack</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
</article>
|
|
@ -0,0 +1,95 @@
|
|||
---
|
||||
title: "v0.5 release"
|
||||
linkTitle: "v0.5 release"
|
||||
date: 2019-04-11
|
||||
description: "The Knative v0.5 release announcement"
|
||||
type: "blog"
|
||||
image: knative-eventing.png
|
||||
---
|
||||
|
||||
<body>
|
||||
<article class="h-entry">
|
||||
<section data-field="subtitle" class="p-summary">
|
||||
Once again, we are excited to announce new release of Knative: a
|
||||
platform to help developers build, deploy, and manage modern serverless…
|
||||
</section>
|
||||
<section data-field="body" class="e-content">
|
||||
<section name="3f42" class="section section--body section--first section--last" >
|
||||
<div class="section-divider"><hr class="section-divider" /></div>
|
||||
<div class="section-content">
|
||||
<div class="section-inner sectionLayout--insetColumn">
|
||||
<h3 name="da2e" id="da2e" class="graf graf--h3 graf--leading graf--title" >
|
||||
Announcing Knative v0.5 Release
|
||||
</h3>
|
||||
<p name="bc75" id="bc75" class="graf graf--p graf-after--h3">
|
||||
Once again, we are excited to announce a new release of
|
||||
<a href="https://www.knative.dev/" data-href="https://www.knative.dev/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank" >Knative</a >: a platform to help developers build, deploy, and manage modern serverless workloads on Kubernetes. </p>
|
||||
<p name="dd43" id="dd43" class="graf graf--p graf-after--p"> While the more frequent and predictable releases of Knative gives us an opportunity to collect faster feedback from real-world use-cases, they also mean smaller and more incremental features. Well, that’s not always the case. Knative v0.5 delivers an exciting set of updates in eventing. Introducing Trigger and Broker objects which further improve and simplify the developer experience building event-driven systems on Knative. </p>
|
||||
<p name="3634" id="3634" class="graf graf--p graf-after--p"> In addition to eventing, this release of Knative also improves a number of metrics and the overall observability of autoscaling, queue proxy, and Istio telemetry. Let’s review these and a few other changes in more depth: </p>
|
||||
<h3 name="e284" id="e284" class="graf graf--h3 graf-after--p"> Eventing </h3>
|
||||
<p name="b67b" id="b67b" class="graf graf--p graf-after--h3"> With the introduction of <strong class="markup--strong markup--p-strong">Trigger</strong> and <strong class="markup--strong markup--p-strong">Broker</strong> objects into the <strong class="markup--strong markup--p-strong" >Eventing</strong > architecture, developers can easily build robust, complex, event-driven systems. By decoupling <strong class="markup--strong markup--p-strong" >Producing</strong > and <strong class="markup--strong markup--p-strong" >Consuming</strong > services there is no longer the need for complex wiring or routing configuration. We are excited to see what new types of events and innovative solutions the community will develop using this new capability! </p>
|
||||
<figure name="b2df" id="b2df" class="graf graf--figure graf-after--p" >
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 291px;" >
|
||||
<div class="aspectRatioPlaceholder-fill" ></div>
|
||||
<img class="graf-image" data-image-id="knative-eventing.png" data-width="2586" data-height="1076" data-is-featured="true" src="/blog/images/knative-eventing.png" />
|
||||
</div>
|
||||
<figcaption class="imageCaption">
|
||||
Knative Eventing Object Model
|
||||
</figcaption>
|
||||
</figure>
|
||||
<p name="dafe" id="dafe" class="graf graf--p graf-after--figure">
|
||||
<strong class="markup--strong markup--p-strong" >Trigger: </strong >developers no longer need to manually provision transport for their events and route them to downstream knative services. They simply define an event trigger that selects the source events (with any desired filtering) and sends them to the consuming service. This greatly simplifies the developer experience. </p>
|
||||
<p name="ad1c" id="ad1c" class="graf graf--p graf-after--p"> <strong class="markup--strong markup--p-strong">Broker: </strong >the events Broker serves as the central events hub to which all messages are sent. Developers and Users simply write services or configure Sources that emit events to the Broker, which handles the rest. Consuming services need only create Triggers to receive the events in which they’re interested in from the Broker. </p>
|
||||
<p name="cfe0" id="cfe0" class="graf graf--p graf-after--p"> <strong class="markup--strong markup--p-strong" >New event Source: </strong >this release of Knative adds support for the Kafka event source, which brings the power and richness of the Kafka ecosystem to Knative and Kubernetes. </p>
|
||||
|
||||
<h3 name="1397" id="1397" class="graf graf--h3 graf-after--p"> Autoscaling </h3> <p name="112e" id="112e" class="graf graf--p graf-after--h3"> Autoscaling added improvements which makes autoscaling under a variety of workloads a smoother motion as well as being more efficient. Expansion of autoscaling metrics were added for additional visibility over time-frames. </p>
|
||||
|
||||
<h3 name="65a6" id="65a6" class="graf graf--h3 graf-after--p"> Core API </h3> <p name="dbe8" id="dbe8" class="graf graf--p graf-after--h3"> In this release, named sub-routes now surface their URLs in the status of Service and Route resources, so there’s no more guesswork in how to target one fork of your traffic split. This is one of the first changes to result from our “v1beta1 task force” which has been discussing the next iteration of the Serving API. Expect to see lots more changes in the coming releases. </p>
|
||||
|
||||
<p name="48d8" id="48d8" class="graf graf--p graf-after--p"> In addition, several of the default values populated by our webhook are now configurable through a new ConfigMap called config-defaults. We have also increased the visibility into system errors by surfacing more Kubernetes events when our controllers suffer internal errors. Last but not least, we have expanded our conformance testing to include securityContext and metadata.generateName. </p>
|
||||
|
||||
<h3 name="f9b0" id="f9b0" class="graf graf--h3 graf-after--p"> Networking </h3> <p name="7e4b" id="7e4b" class="graf graf--p graf-after--h3"> Bulk of the work in the networking space this sprint focused on fixing bugs and improving overall cold-starts for gRPC services as well as further improving client default authority header handling. </p>
|
||||
|
||||
<p name="3590" id="3590" class="graf graf--p graf-after--p"> The complete set of Knative v0.5 release notes outlining the new features as well as bug fixes are available in the <a href="https://github.com/knative/serving/releases/tag/v0.5.0" data-href="https://github.com/knative/serving/releases/tag/v0.5.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank" >Serving</a >, <a href="https://github.com/knative/build/releases/tag/v0.5.0" data-href="https://github.com/knative/build/releases/tag/v0.5.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank" >Build</a >, and <a href="https://github.com/knative/eventing/releases/tag/v0.5.0" data-href="https://github.com/knative/eventing/releases/tag/v0.5.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank" >Eventing</a > repositories. </p>
|
||||
|
||||
<h3 name="813d" id="813d" class="graf graf--h3 graf-after--p"> Learn more </h3>
|
||||
|
||||
<ul class="postList">
|
||||
|
||||
<li name="c00d" id="c00d" class="graf graf--li graf-after--h3"> <a href="https://github.com/knative/docs#welcome-to-knative" data-href="https://github.com/knative/docs#welcome-to-knative" class="markup--anchor markup--li-anchor" rel="nofollow noopener noopener noopener noopener" target="_blank" >Welcome to Knative</a > </li>
|
||||
|
||||
<li name="d88a" id="d88a" class="graf graf--li graf-after--li"> <a href="https://knative.dev/docs/" target="_blank" >Getting started documentation</a > </li>
|
||||
|
||||
<li name="a9ca" id="a9ca" class="graf graf--li graf-after--li"> <a href="https://knative.dev/docs/samples/" target="_blank" >Samples and demos</a > </li>
|
||||
|
||||
<li name="fe75" id="fe75" class="graf graf--li graf-after--li"> <a href="https://knative.dev/contributing/" target="_blank" >Knative meetings and work groups</a > </li>
|
||||
|
||||
<li name="cf03" id="cf03" class="graf graf--li graf-after--li"> <a href="https://knative.dev/community/" target="_blank" >Questions and issues</a > </li>
|
||||
|
||||
<li name="19ce" id="19ce" class="graf graf--li graf-after--li"> Knative on Twitter (<a href="https://twitter.com/KnativeProject" data-href="https://twitter.com/KnativeProject" class="markup--anchor markup--li-anchor" rel="nofollow noopener noopener noopener noopener" target="_blank" >@KnativeProject</a >) </li>
|
||||
|
||||
<li name="5fcb" id="5fcb" class="graf graf--li graf-after--li"> Knative on <a href="https://stackoverflow.com/questions/tagged/knative" data-href="https://stackoverflow.com/questions/tagged/knative" class="markup--anchor markup--li-anchor" rel="nofollow noopener noopener noopener noopener" target="_blank" >StackOverflow</a > </li>
|
||||
|
||||
<li name="3813" id="3813" class="graf graf--li graf-after--li graf--trailing" > Knative <a href="https://slack.knative.dev/" data-href="https://slack.knative.dev/" class="markup--anchor markup--li-anchor" rel="nofollow noopener noopener noopener noopener" target="_blank" >Slack</a > </li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
|
||||
<p> By <a href="https://medium.com/@mchmarny_google" class="p-author h-card" >Mark Chmarny</a > on <a href="https://medium.com/p/cfe646ca8e30" ><time class="dt-published" datetime="2019-04-11T14:30:40.853Z" >April 11, 2019</time ></a >. </p>
|
||||
|
||||
<p> <a href="https://medium.com/@mchmarny_google/announcing-knative-v0-5-release-cfe646ca8e30" class="p-canonical" >Canonical link</a > </p>
|
||||
|
||||
<p> Exported from <a href="https://medium.com">Medium</a> on June 7, 2019. </p>
|
||||
|
||||
</footer>
|
||||
|
||||
</article>
|
|
@ -12,10 +12,6 @@ description: "Knative Project Governance Changes"
|
|||
type: "blog"
|
||||
|
||||
---
|
||||
| Reviewer | Date | Approval |
|
||||
| ------------- | ------------- | ------------- |
|
||||
| <!-- Your Github handle here --> | | |
|
||||
|
||||
|
||||
One of the long-standing [asks](https://github.com/knative/community/issues/33)
|
||||
within the Knative community has been for the Steering Committee to clarify its
|
|
@ -1,3 +1,8 @@
|
|||
---
|
||||
title: TOC 2021 election announcement
|
||||
date: 2021-04-13
|
||||
---
|
||||
|
||||
It’s time to kick off the Knative [Technical Oversight Committee](https://github.com/knative/community/blob/main/TECH-OVERSIGHT-COMMITTEE.md) (TOC) elections
|
||||
again for 2021, and we are ready to accept nominations!
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
INHERIT: config/nav.yml
|
||||
|
||||
site_name: Knative
|
||||
site_url: https://knative.dev/blog
|
||||
site_description: Knative Blog
|
||||
extra_css:
|
||||
- stylesheets/extra.css
|
||||
|
||||
repo_url: https://github.com/knative/docs
|
||||
edit_uri: edit/main/blog/docs
|
||||
|
||||
|
||||
theme:
|
||||
name: material
|
||||
docs_dir: blog/
|
||||
logo: images/logo/rgb/knative-logo-rgb.png
|
||||
favicon: images/favicon.ico
|
||||
custom_dir: overrides
|
||||
features:
|
||||
- navigation.tabs
|
||||
- navigation.tracking
|
||||
- navigation.tabs.sticky
|
||||
- navigation.indexes
|
||||
- navigation.top
|
||||
|
||||
markdown_extensions:
|
||||
# - mdx_include:
|
||||
# base_path: docs
|
||||
- pymdownx.emoji:
|
||||
emoji_index: !!python/name:materialx.emoji.twemoji
|
||||
emoji_generator: !!python/name:materialx.emoji.to_svg
|
||||
- attr_list
|
||||
- meta
|
||||
- pymdownx.superfences
|
||||
- pymdownx.tabbed
|
||||
- pymdownx.details
|
||||
- pymdownx.snippets:
|
||||
base_path: docs/snippets
|
||||
- pymdownx.keys
|
||||
- pymdownx.caret
|
||||
- pymdownx.mark
|
||||
- pymdownx.tilde
|
||||
- pymdownx.escapeall
|
||||
- pymdownx.tasklist:
|
||||
custom_checkbox: true
|
||||
- admonition
|
||||
- toc:
|
||||
permalink: true
|
||||
toc_depth: 1
|
||||
- def_list
|
||||
|
||||
plugins:
|
||||
search:
|
||||
# Spaces, dashes, periods and forward-slash (so serving.knative.dev/blibble can be searched as blibble).
|
||||
separator: '[\/\s\-\.]+'
|
||||
exclude:
|
||||
glob:
|
||||
# Exclude files that contain hugo specific shortcodes
|
||||
# (either the include shortcode or not-converted-yet tabs).
|
||||
- snippets/*
|
||||
- smoketest.md
|
||||
- "*/_index.md" # pretty much all shortcodes
|
||||
awesome-pages:
|
||||
filename: ".index"
|
||||
collapse_single_pages: true
|
||||
strict: false
|
||||
rss:
|
||||
match_path: "(articles|steering|events|releases)/.*"
|
||||
date_from_meta:
|
||||
as_creation: "date"
|
||||
as_update: false
|
||||
datetime_format: "%Y-%m-%d"
|
||||
|
||||
copyright: "Copyright © 2021 The Knative Authors"
|
||||
|
||||
extra:
|
||||
social:
|
||||
- icon: fontawesome/brands/twitter
|
||||
link: https://twitter.com/KnativeProject
|
||||
- icon: fontawesome/brands/github
|
||||
link: https://github.com/knative/community
|
||||
name: Knative Community on Github
|
||||
- icon: fontawesome/brands/slack
|
||||
link: https://slack.knative.dev
|
||||
name: Slack
|
||||
# TODO: Replace with https://github.com/mkdocs/mkdocs/pull/2267 once mkdocs 1.2 is out.
|
||||
version_warning: !!python/object/apply:os.getenv ["VERSION_WARNING"]
|
||||
knative_version: !!python/object/apply:os.getenv ["KNATIVE_VERSION"]
|
||||
branch: !!python/object/apply:os.getenv ["SAMPLES_BRANCH", "main"]
|
||||
analytics:
|
||||
provider: google
|
||||
property: G-YRMNFYE32R
|
||||
version:
|
||||
provider: mike
|
|
@ -1,116 +0,0 @@
|
|||
---
|
||||
title: "Announcing the Knative v0.2 release"
|
||||
linkTitle: "v0.2 release"
|
||||
date: 2018-11-14
|
||||
description: "The Knative v0.2 release announcement"
|
||||
type: "blog"
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<article class="h-entry">
|
||||
<section data-field="subtitle" class="p-summary">
|
||||
Improved pluggability, autoscaling, stability, and performance
|
||||
</section>
|
||||
<section data-field="body" class="e-content">
|
||||
<section name="2748" class="section section--body section--first section--last">
|
||||
<div class="section-divider">
|
||||
<hr class="section-divider">
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<div class="section-inner sectionLayout--insetColumn">
|
||||
<h3 name="d4ac" id="d4ac" class="graf graf--h3 graf--leading graf--title">Announcing Knative v0.2 Release</h3>
|
||||
<p name="93a1" id="93a1" class="graf graf--p graf-after--h3">Improved pluggability, autoscaling, stability, and performance</p>
|
||||
<p name="42e2" id="42e2" class="graf graf--p graf-after--p">We are excited to announce a new release of Knative, the set of middleware components for building modern applications on Kubernetes. The 0.2 release of Knative is the first significant update since the project’s launch in July. It represents months of hard work by the entire Knative community to address our learnings from the growing number of Knative deployments.</p>
|
||||
<figure name="52f3" id="52f3" class="graf graf--figure graf--layoutOutsetLeft graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 441px; max-height: 356px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-image-id="knative.png" data-width="441" data-height="356" data-is-featured="true" src="../../../../images/knative.png">
|
||||
</div>
|
||||
</figure>
|
||||
<p name="42db" id="42db" class="graf graf--p graf-after--figure">The most exciting aspect of the 0.2 release is the inclusion of eventing. The Eventing component complements the other two foundational blocks already defined by Knative: Serving and Build. We look forward to the new types of events and innovative solutions the community will develop using this new capability.</p>
|
||||
<p name="6aed" id="6aed" class="graf graf--p graf-after--p">Serving made significant improvements “under the hood,” encapsulating key areas of Knative into subsystems with new internal APIs to enable support for pluggable networking, autoscaling, and caching.</p>
|
||||
<p name="bb3e" id="bb3e" class="graf graf--p graf-after--p">The complete release notes are available in Knative <a href="https://github.com/knative/serving/releases/tag/v0.2.1" data-href="https://github.com/knative/serving/releases/tag/v0.2.1" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Serving</a>, <a href="https://github.com/knative/build/releases/tag/v0.2.0" data-href="https://github.com/knative/build/releases/tag/v0.2.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Build</a>, and <a href="https://github.com/knative/eventing/releases/tag/v0.2.0" data-href="https://github.com/knative/eventing/releases/tag/v0.2.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Eventing</a> repositories. Here are a few highlights:</p>
|
||||
<p name="02e7" id="02e7" class="graf graf--p graf-after--p">
|
||||
<strong class="markup--strong markup--p-strong">New Eventing Resource Model <br>
|
||||
</strong>The eventing repo went through a significant rework of the resource model, resulting in migration of sources into Custom Resource Definitions (CRDs). Now, eventing includes a sophisticated use of standard Kubernetes concepts, resulting in better validation, cleaner interfaces, and RBAC support. The new architecture uses a simpler object model that is centered around channels and subscriptions.</p>
|
||||
<p name="92d4" id="92d4" class="graf graf--p graf-after--p">
|
||||
<strong class="markup--strong markup--p-strong">Looser Coupling<br>
|
||||
</strong>One of the pieces of positive feedback we received on v0.1 was the “tasteful” choices defining Knative building blocks. In v0.2, Knative leans into this even further to enable operators to install the Build, Serving, and Eventing components independent of one another. The contract that enables these loose couplings between Knative components will also enable third party integrations over time, such as using a non-Knative Build with Serving, or delivering events to non-Serving deployments. We are excited to see what direction the community takes this.</p>
|
||||
<p name="98f1" id="98f1" class="graf graf--p graf-after--p">
|
||||
<strong class="markup--strong markup--p-strong">Pluggable Subsystems</strong>
|
||||
<br>We also got a lot of feedback about wanting to customize Knative. The goal was always to support some measure of pluggability, so customization was significantly improved in v0.2. We introduced 3 new internal APIs in v0.2 to separate our core resource model from the subsystems that implement them: Networking, Autoscaling, and Caching. Networking enables developers to replace our Istio dependency with alternative ingress implementations. Autoscaling enables developers to replace our “cheap and cheerful” autoscaler with one of their own designs. Caching enables developers to employ image caching strategies to preload container images across their cluster (no implementation bundled, so this is a pure extension-point).</p>
|
||||
<p name="d31d" id="d31d" class="graf graf--p graf-after--p">
|
||||
<strong class="markup--strong markup--p-strong">Improved Cold-Starts</strong>
|
||||
<br>Two of the dominant factors in cold-start performance are side-car injection and image pull latency. With their 1.0.2 release, Istio has made progress on reducing the Envoy programming time. In addition, we’ve made it possible to install Knative with side-car injection disabled. To enable folks to combat image pull latency, we have exposed a new extension point called an “Image” resource (part of knative/caching), which contains all the information needed for a controller to pre-load user images across a cluster. Caching is another feature we are excited to see the community build upon.</p>
|
||||
<p name="f099" id="f099" class="graf graf--p graf-after--p">
|
||||
<strong class="markup--strong markup--p-strong">Autoscaling</strong>
|
||||
<br>We have replaced the previous per-Revision autoscalers with a single shared autoscaler. The new autoscaler is based on the same logic as the previous autoscaler, but has evolved to be purely metrics driven (including 0->1->0), eliminating the unnecessary Revision servingState field. We have replaced ConcurrencyModel (Single or Multi) with an integer ContainerConcurrency field. This allows limiting concurrency to values other than 1 for certain use cases (for example, limited thread pools).</p>
|
||||
<p name="44ae" id="44ae" class="graf graf--p graf-after--p">
|
||||
<strong class="markup--strong markup--p-strong">Build</strong>
|
||||
<br>Knative Build added many incremental improvements, including the new ClusterBuildTemplate resource. Operators are now able to install a set of BuildTemplates one time instead of once per-Namespace. Build template parameters can now also apply to build step image names. New features of the Build spec allow users to specify a build-wide timeout, node selectors, and affinity. Last but not least, build status has been extended to report per-step build progress and build pending times.</p>
|
||||
<h3 name="7b11" id="7b11" class="graf graf--h3 graf-after--p">Knative at KubeCon</h3>
|
||||
<p name="1629" id="1629" class="graf graf--p graf-after--h3">Come and talk to us! There are a number of Knative sessions at the upcoming KubeCon conferences, both in Shanghai and Seattle.</p>
|
||||
<p name="2e0b" id="2e0b" class="graf graf--p graf-after--p">
|
||||
<strong class="markup--strong markup--p-strong">Shanghai</strong>
|
||||
</p>
|
||||
<ul class="postList">
|
||||
<li name="7bd0" id="7bd0" class="graf graf--li graf-after--p">
|
||||
<a href="https://kccncchina2018english.sched.com/event/FuKU/botless-a-serverless-chatbot-framework-scott-nichols-google" data-href="https://kccncchina2018english.sched.com/event/FuKU/botless-a-serverless-chatbot-framework-scott-nichols-google" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Botless: A Serverless Chatbot Framework</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p name="7514" id="7514" class="graf graf--p graf-after--li">
|
||||
<strong class="markup--strong markup--p-strong">Seattle</strong>
|
||||
</p>
|
||||
<ul class="postList">
|
||||
<li name="4329" id="4329" class="graf graf--li graf-after--p">
|
||||
<a href="https://kccna18.sched.com/event/Grbz/intro-knative-productivity-bof-srinivas-v-hegde-adriano-cunha-google" data-href="https://kccna18.sched.com/event/Grbz/intro-knative-productivity-bof-srinivas-v-hegde-adriano-cunha-google" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Intro: Knative Productivity BoF</a>
|
||||
</li>
|
||||
<li name="1b05" id="1b05" class="graf graf--li graf-after--li">
|
||||
<a href="https://kccna18.sched.com/event/Gra9/knative-scaling-from-0-to-infinity-joseph-burnett-mark-chmarny-google" data-href="https://kccna18.sched.com/event/Gra9/knative-scaling-from-0-to-infinity-joseph-burnett-mark-chmarny-google" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Knative: Scaling From 0 to Infinity</a>
|
||||
</li>
|
||||
<li name="4549" id="4549" class="graf graf--li graf-after--li">
|
||||
<a href="https://kccna18.sched.com/event/GrVt/machine-learning-model-serving-and-pipeline-using-knative-animesh-singh-ibm" data-href="https://kccna18.sched.com/event/GrVt/machine-learning-model-serving-and-pipeline-using-knative-animesh-singh-ibm" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Machine Learning Model Serving and Pipeline Using Knative</a>
|
||||
</li>
|
||||
<li name="799d" id="799d" class="graf graf--li graf-after--li">
|
||||
<a href="https://kccna18.sched.com/event/GraR/tutorial-getting-your-hands-dirty-with-knative-bas-tichelaar-ade-mochtar-instruqt" data-href="https://kccna18.sched.com/event/GraR/tutorial-getting-your-hands-dirty-with-knative-bas-tichelaar-ade-mochtar-instruqt" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Tutorial: Getting Your Hands Dirty with Knative</a>
|
||||
</li>
|
||||
<li name="34f6" id="34f6" class="graf graf--li graf-after--li">
|
||||
<a href="https://kccna18.sched.com/event/GrSt/building-container-images-on-your-kubernetes-cluster-with-knative-build-gareth-rushgrove-docker" data-href="https://kccna18.sched.com/event/GrSt/building-container-images-on-your-kubernetes-cluster-with-knative-build-gareth-rushgrove-docker" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Building Container Images on Your Kubernetes Cluster with Knative Build</a>
|
||||
</li>
|
||||
<li name="83cf" id="83cf" class="graf graf--li graf-after--li">
|
||||
<a href="https://kccna18.sched.com/event/GraI/how-to-build-deep-learning-inference-through-knative-serverless-framework-huamin-chen-yehuda-sadeh-weinraub-red-hat" data-href="https://kccna18.sched.com/event/GraI/how-to-build-deep-learning-inference-through-knative-serverless-framework-huamin-chen-yehuda-sadeh-weinraub-red-hat" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">How to Build Deep Learning Inference Through Knative Serverless Framework</a>
|
||||
</li>
|
||||
<li name="25e8" id="25e8" class="graf graf--li graf-after--li">
|
||||
<a href="https://kccna18.sched.com/event/GraC/t-mobile-store-locator-serverless-journey-with-knative-and-kubernetes-ram-gopinathan-t-mobile" data-href="https://kccna18.sched.com/event/GraC/t-mobile-store-locator-serverless-journey-with-knative-and-kubernetes-ram-gopinathan-t-mobile" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">T-Mobile Store Locator Serverless Journey with Knative and Kubernetes</a>
|
||||
</li>
|
||||
<li name="e7e0" id="e7e0" class="graf graf--li graf-after--li">
|
||||
<a href="https://kccna18.sched.com/event/GraF/birds-of-a-feather-knative-jessie-zhu-google" data-href="https://kccna18.sched.com/event/GraF/birds-of-a-feather-knative-jessie-zhu-google" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Birds of a Feather: Knative</a>
|
||||
</li>
|
||||
<li name="e022" id="e022" class="graf graf--li graf-after--li">
|
||||
<a href="https://kccna18.sched.com/event/Grdv/deep-dive-knative-productivity-bof-jessie-zhu-adriano-cunha-google" data-href="https://kccna18.sched.com/event/Grdv/deep-dive-knative-productivity-bof-jessie-zhu-adriano-cunha-google" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Deep Dive: Knative Productivity BoF</a>
|
||||
</li>
|
||||
<li name="a3b3" id="a3b3" class="graf graf--li graf-after--li graf--trailing">
|
||||
<a href="https://kccna18.sched.com/event/IRr7/deploying-serverless-apps-to-kubernetes-with-knative-additional-registration-fee-required" data-href="https://kccna18.sched.com/event/IRr7/deploying-serverless-apps-to-kubernetes-with-knative-additional-registration-fee-required" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Deploying serverless apps to Kubernetes with Knative</a> (Additional registration and fees required)</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<footer>
|
||||
<p>By <a href="https://medium.com/@mchmarny_google" class="p-author h-card">Mark Chmarny</a> on <a href="https://medium.com/p/963f276af58e">
|
||||
<time class="dt-published" datetime="2018-11-14T02:26:34.071Z">November 14, 2018</time>
|
||||
</a>.</p>
|
||||
<p>
|
||||
<a href="https://medium.com/@mchmarny_google/https-medium-com-knative-v0-2-963f276af58e" class="p-canonical">Canonical link</a>
|
||||
</p>
|
||||
<p>Exported from <a href="https://medium.com">Medium</a> on January 8, 2019.</p>
|
||||
</footer>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
|
@ -1,93 +0,0 @@
|
|||
---
|
||||
title: "Announcing the Knative v0.3 release"
|
||||
linkTitle: "v0.3 release"
|
||||
date: 2019-01-15
|
||||
description: "The Knative v0.3 release announcement"
|
||||
type: "blog"
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<article class="h-entry">
|
||||
<section data-field="subtitle" class="p-summary">
|
||||
Knative’s momentum continues! Once again, we are excited to announce a new release of Knative. After a series of architectural changes…
|
||||
</section>
|
||||
<section data-field="body" class="e-content">
|
||||
<section name="b504" class="section section--body section--first section--last">
|
||||
<div class="section-divider">
|
||||
<hr class="section-divider">
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<div class="section-inner sectionLayout--insetColumn">
|
||||
<h3 name="d708" id="d708" class="graf graf--h3 graf--leading graf--title">Announcing Knative v0.3 Release</h3>
|
||||
<p name="feb7" id="feb7" class="graf graf--p graf-after--h3">Knative’s momentum continues! Once again, we are excited to announce a new release of Knative. After a series of architectural changes announced in the previous release, v0.3 implements many of the learnings from the growing number of Knative deployments, increases operational control, and improves stability.</p>
|
||||
<p name="7e01" id="7e01" class="graf graf--p graf-after--p">As we move to a more predictable release schedule based on six week cadence, Knative releases will now be smaller and more frequent. We did this to enable a tighter feedback loop with our users and allow for smoother course corrections as we continue to learn from our growing number of users.</p>
|
||||
<figure name="31b7" id="31b7" class="graf graf--figure graf--layoutOutsetLeft graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 200px; max-height: 200px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<img class="graf-image" data-image-id="knative" data-width="200" data-height="200" src="../../../../images/knative.png">
|
||||
</div>
|
||||
</figure>
|
||||
<p name="de1e" id="de1e" class="graf graf--p graf-after--figure">Starting with the v0.3 release, Knative now requires Kubernetes 1.11, due to the use of `/status` sub-resource support, which went Beta in Kubernetes 1.11 and fixes a long-standing Kubernetes CRD bug.</p>
|
||||
<p name="e124" id="e124" class="graf graf--p graf-after--p">The complete set of Knative v0.3 release notes outlining the new features as well as bug fixes and architectural changes are available in the <a href="https://github.com/knative/serving/releases/tag/v0.3.0" data-href="https://github.com/knative/serving/releases/tag/v0.3.0" class="markup--anchor markup--p-anchor" rel="noopener">Serving</a>, <a href="https://github.com/knative/build/releases/tag/v0.3.0" data-href="https://github.com/knative/build/releases/tag/v0.3.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Build</a>, and <a href="https://github.com/knative/eventing/releases/tag/v0.3.0" data-href="https://github.com/knative/eventing/releases/tag/v0.3.0" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Eventing</a> repositories. Here are a few highlights:</p>
|
||||
<h3 name="c10b" id="c10b" class="graf graf--h3 graf-after--p">Serving API</h3>
|
||||
<p name="0183" id="0183" class="graf graf--p graf-after--h3">With the v0.3 release, Knative now exposes a few additional parameters in its API. These include explicit Revision timeouts and the ability to specify the port for incoming traffic to the user container, which Knative previously exposed to the container using the “$PORT” environment variable.</p>
|
||||
<p name="3fd8" id="3fd8" class="graf graf--p graf-after--p">An even bigger addition is support for the <a href="https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" data-href="https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Kubernetes resources spec</a>, which allows you to specify reservations and limits on the user container. Besides allowing the service to specify how much CPU and memory (RAM) it needs or limit how much it can use; this also allows developers to request access to <a href="https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus/" data-href="https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">hardware accelerators like GPU</a> if their cluster includes nodes configured with that capability.</p>
|
||||
<p name="ca9e" id="ca9e" class="graf graf--p graf-after--p">In v0.3, Knative is also more proactive about rolling out operator changes. Changes to serving ConfigMaps are now immediately reconciled and rolled out.</p>
|
||||
<h3 name="3ae8" id="3ae8" class="graf graf--h3 graf-after--p">Autoscaling</h3>
|
||||
<p name="110d" id="110d" class="graf graf--p graf-after--h3">Building on the new single shared autoscaler introduced in the previous release, v0.3 introduces a more aggressive scale-to-zero strategy, which will by default scale Revisions down to zero pods after only 30 seconds of inactivity. The default Knative Pod Autoscaler (KPA) now supports revision-level concurrency targets.</p>
|
||||
<p name="5db5" id="5db5" class="graf graf--p graf-after--p">As shown in our <a href="https://youtu.be/OPSIPr-Cybs" data-href="https://youtu.be/OPSIPr-Cybs" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Kubecon demo</a>, Knative now offers Horizontal Pod Autoscaler (HPA). This is useful for those who need to opt-out of KPA and use CPU instead of request rate as a scaling metric. (Note: HPA-class Revisions will not scale to zero).</p>
|
||||
<p name="716d" id="716d" class="graf graf--p graf-after--p">Lastly, you can now also mutate `PodAutoscaler` specs in-place to adjust the scale bounds and other parameters.</p>
|
||||
<h3 name="4108" id="4108" class="graf graf--h3 graf-after--p">Networking</h3>
|
||||
<p name="7ce7" id="7ce7" class="graf graf--p graf-after--h3">A frequently-requested feature is the ability to deploy services which are not exposed externally and can only be accessed by other services in the cluster. In v0.3, Routes <a href="../../../../../docs/reference/serving-api/#RouteStatus">configured</a> to use the `svc.cluster.local` domain will only be exposed to the cluster-local Istio gateway. The cluster-local gateway will keep the deployed service inaccessible from outside the cluster. Developers can also use the `serving.knative.dev/visibility=cluster-local` label on their Route or Service to enable this behaviour.</p>
|
||||
<p name="09bc" id="09bc" class="graf graf--p graf-after--p">Knative is also deprecating its dedicated Istio gateway. In v0.3 release, Knative will still expose public routes to both the deprecated gateway and the default Istio gateway. Starting with next release however, Knative will remove the deprecated gateway to further reduce overhead and avoid the additional cost of public IP. (Note, you may have to update the gateway IP in your DNS mappings).</p>
|
||||
<h3 name="d066" id="d066" class="graf graf--h3 graf-after--p">Eventing</h3>
|
||||
<p name="7ef7" id="7ef7" class="graf graf--p graf-after--h3">With the inclusion of Eventing in the previous release, there has been a significant focus on extending the number of and documenting available external event sources which can be installed in Knative as Kubernetes Custom Resource Definitions (CRDs). The complete list of currently supported event sources can be found <a href="../../../../../docs/developer/eventing/sources#sources">here</a>.</p>
|
||||
<h3 name="87ba" id="87ba" class="graf graf--h3 graf-after--p">Build</h3>
|
||||
<p name="9e6a" id="9e6a" class="graf graf--p graf-after--h3">The Knative Build component can now support both single `source` and multiple input `sources`. If multiple sources are requested, each will be fetched in declared order and placed into a directory under `/workspace` named after the source’s name field. The Build controller is also now subject to the PodSecurityPolicy which enables cluster operators to specify further limitations.</p>
|
||||
<h3 name="6e57" id="6e57" class="graf graf--h3 graf-after--p">Monitoring</h3>
|
||||
<p name="8ad2" id="8ad2" class="graf graf--p graf-after--h3">Metric labels should now be consistent across all of the Knative components. Also, in addition to the default Prometheus metric target, Knative control plane metrics (from Reconciler, Autoscaler, and Activator) can now be exported directly to Stackdriver.</p>
|
||||
<h3 name="7ec8" id="7ec8" class="graf graf--h3 graf-after--p">Learn more</h3>
|
||||
<ul class="postList">
|
||||
<li name="c00d" id="c00d" class="graf graf--li graf-after--h3">
|
||||
<a href="../../../../../docs/" data-href="../../../../../docs/" class="markup--anchor markup--li-anchor" rel="noopener">Welcome to Knative</a>
|
||||
</li>
|
||||
<li name="d88a" id="d88a" class="graf graf--li graf-after--li">
|
||||
<a href="../../../../../docs/#documentation" data-href="../../../../../docs/#documentation" class="markup--anchor markup--li-anchor" rel="noopener">Getting started documentation</a>
|
||||
</li>
|
||||
<li name="a9ca" id="a9ca" class="graf graf--li graf-after--li">
|
||||
<a href="../../../../../docs/#samples-and-demos" data-href="../../../../../docs/#samples-and-demos" class="markup--anchor markup--li-anchor" rel="noopener">Samples and demos</a>
|
||||
</li>
|
||||
<li name="fe75" id="fe75" class="graf graf--li graf-after--li">
|
||||
<a href="../../../../../contributing/#meetings-and-work-groups" data-href="../../../../../contributing/#meetings-and-work-groups" class="markup--anchor markup--li-anchor" rel="noopener">Knative meetings and work groups</a>
|
||||
</li>
|
||||
<li name="cf03" id="cf03" class="graf graf--li graf-after--li">
|
||||
<a href="../../../../../contributing/#questions-and-issues" data-href="../../../../../contributing/README.md#questions-and-issues" class="markup--anchor markup--li-anchor" rel="noopener">Questions and issues</a>
|
||||
</li>
|
||||
<li name="19ce" id="19ce" class="graf graf--li graf-after--li">Knative on Twitter (<a href="https://twitter.com/KnativeProject" data-href="https://twitter.com/KnativeProject" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">@KnativeProject</a>)</li>
|
||||
<li name="5fcb" id="5fcb" class="graf graf--li graf-after--li">Knative on <a href="https://stackoverflow.com/questions/tagged/knative" data-href="https://stackoverflow.com/questions/tagged/knative" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">StackOverflow</a>
|
||||
</li>
|
||||
<li name="3813" id="3813" class="graf graf--li graf-after--li graf--trailing">Knative <a href="https://slack.knative.dev/" data-href="https://slack.knative.dev/" class="markup--anchor markup--li-anchor" rel="noopener">Slack</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<footer>
|
||||
<p>By <a href="https://medium.com/@mchmarny_google" class="p-author h-card">Mark Chmarny</a> on <a href="https://medium.com/p/18d738c225c3">
|
||||
<time class="dt-published" datetime="2019-01-15T17:58:06.784Z">January 15, 2019</time>
|
||||
</a>.</p>
|
||||
<p>
|
||||
<a href="https://medium.com/@mchmarny_google/announcing-knative-v0-3-release-18d738c225c3" class="p-canonical">Canonical link</a>
|
||||
</p>
|
||||
<p>Exported from <a href="https://medium.com">Medium</a> on January 23, 2019.</p>
|
||||
</footer>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
|
@ -1,90 +0,0 @@
|
|||
---
|
||||
title: "Announcing the Knative v0.4 release"
|
||||
linkTitle: "v0.4 release"
|
||||
date: 2019-02-20
|
||||
description: "The Knative v0.4 release announcement"
|
||||
type: "blog"
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<article class="h-entry">
|
||||
<section data-field="subtitle" class="p-summary">
|
||||
Knative v0.4 release responds to ongoing and direct feedback from the growing number of deployments
|
||||
</section>
|
||||
<section data-field="body" class="e-content">
|
||||
<section name="b504" class="section section--body section--first section--last">
|
||||
<div class="section-divider">
|
||||
<hr class="section-divider">
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<div class="section-inner sectionLayout--insetColumn">
|
||||
<h3 name="d708" id="d708" class="graf graf--h3 graf--leading graf--title">Announcing Knative v0.4 Release</h3>
|
||||
<p name="feb7" id="feb7" class="graf graf--p graf-after--h3">Once again, we are excited to announce updates to <a href="https://www.knative.dev/" data-href="https://www.knative.dev/" class="markup--anchor markup--p-anchor" rel="nofollow noopener">Knative</a>. The v0.4 release continues to respond to ongoing direct feedback from the growing number of deployments. In each release, Knative implements these learnings based on new use-cases that are now being addressed with our platform.</p>
|
||||
<figure name="545f" id="545f" class="graf graf--figure graf--layoutOutsetLeft graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 200px; max-height: 200px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="knative" data-width="200" data-height="200">
|
||||
<img src="../../../../images/knative.png">
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
<p name="0fec" id="0fec" class="graf graf--p graf-after--figure">The areas where we received the most feedback were: configuration and secret management.</p>
|
||||
<p name="f70a" id="f70a" class="graf graf--p graf-after--p">As Knative maintains its predictable release cadence, the ability to preserve the settings from your previous installation (e.g. domain) became even more important. So, in the v0.4 release, Knative now preserves previously set ConfigMap values during the update process. Starting with subsequent releases, users should be able to simply apply the latest knative/serving release and continue using their previous settings.</p>
|
||||
<p name="28b2" id="28b2" class="graf graf--p graf-after--p">With regards to secret management, Knative users have frequently asked for more flexibility with Secrets (for confidential data) and ConfigMaps (for non-confidential data). To address that need, Knative has now <a href="https://www.knative.dev/docs/serving/samples/secrets-go" data-href="https://www.knative.dev/docs/serving/samples/secrets-go" class="markup--anchor markup--p-anchor" rel="nofollow noopener">added support</a> for mounting Secrets and ConfigMaps as volumes.</p>
|
||||
<figure name="94b1" id="94b1" class="graf graf--figure graf--layoutOutsetLeft graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 200px; max-height: 200px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="grpc" data-width="200" data-height="200">
|
||||
<img src="../../../../images/grpc.png">
|
||||
</figure>
|
||||
<p name="c7c6" id="c7c6" class="graf graf--p graf-after--figure">Another area where we had a lot of feedback almost since the initial release of Knative was the need for additional network protocol support besides basic HTTP. I’m happy to say that with the v0.4 release Knative now also <a href="https://www.knative.dev/docs/serving/samples/grpc-ping-go" data-href="https://www.knative.dev/docs/serving/samples/grpc-ping-go" class="markup--anchor markup--p-anchor" rel="nofollow noopener">supports</a> both HTTP2 and gRPC for ports named h2c. There are still some challenges with streaming RPC during cold-starts so we look forward to your feedback.</p>
|
||||
<p name="b291" id="b291" class="graf graf--p graf-after--p">Additionally, Knative also now <a href="https://github.com/mchmarny/knative-ws-example" data-href="https://github.com/mchmarny/knative-ws-example" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">supports</a> the ability to upgrade an inbound HTTP connection for WebSockets. This change involved plumbing through various layers of serving infrastructure, including activator and Istio VirtualService, so we are happy to finally land this often requested feature in Knative.</p>
|
||||
<p name="6238" id="6238" class="graf graf--p graf-after--p">As with previous releases, Knative autoscaling continues to be an area of focus. The v0.4 release is no different, and once again, it improves on cold-start times by immediately scaling up when the autoscaler gets stats from activator. This reduces the latency when Knative must activate a previously scaled-to-zero workload. Additionally, the Serving activator also now throttles traffic it sends to scaled to zero pods to avoid overloading a single pod during initial large bursts of traffic.</p>
|
||||
<figure name="2e47" id="2e47" class="graf graf--figure graf--layoutOutsetLeft graf-after--p">
|
||||
<div class="aspectRatioPlaceholder is-locked" style="max-width: 200px; max-height: 200px;">
|
||||
<div class="aspectRatioPlaceholder-fill">
|
||||
</div>
|
||||
<div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="istio" data-width="200" data-height="200">
|
||||
<img src="../../../../images/istio.png" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail">
|
||||
</figure>
|
||||
<p name="353e" id="353e" class="graf graf--p graf-after--figure">As we indicated in the previous release, starting with the v0.4 release, Knative removes the customized Istio IngressGateway to enhance support for multiple versions of Istio and to reduce the number of needed load balancers. Users upgrading from the v0.3 release will need to reconfigure their DNS to point to the IP address exposed by istio-ingressgateway before upgrading, and remove the knative-ingressgateway Service and Deployment.</p>
|
||||
<p name="c01a" id="c01a" class="graf graf--p graf-after--p">Finally, the v0.4 release of Knative serving adds an option to change the default ClusterIngress controller in the config-network ConfigMap from Istio if another controller is necessary.</p>
|
||||
<p name="c64f" id="c64f" class="graf graf--p graf-after--p">In Eventing, the in-memory channel is now buffering events in memory rather than acting as a proxy. This change improves efficiency and throughput of event sources by reducing client blocking.</p>
|
||||
<p name="38b9" id="38b9" class="graf graf--p graf-after--p">The complete set of Knative v0.4 release notes outlining the new features as well as bug fixes are available in the <a href="https://github.com/knative/serving/releases/tag/v0.4.0" data-href="https://github.com/knative/serving/releases/tag/v0.4.0" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Serving</a>, <a href="https://github.com/knative/build/releases/tag/v0.4.0" data-href="https://github.com/knative/build/releases/tag/v0.4.0" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Build</a>, and <a href="https://github.com/knative/eventing/releases/tag/v0.4.0" data-href="https://github.com/knative/eventing/releases/tag/v0.4.0" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Eventing</a> repositories.</p>
|
||||
<h3 name="363c" id="363c" class="graf graf--h3 graf-after--p">Learn more</h3>
|
||||
<ul class="postList">
|
||||
<li name="c00d" id="c00d" class="graf graf--li graf-after--h3">
|
||||
<a href="https://www.knative.dev/docs#welcome-to-knative" data-href="https://www.knative.dev/docs#welcome-to-knative" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener">Welcome to Knative</a>
|
||||
</li>
|
||||
<li name="d88a" id="d88a" class="graf graf--li graf-after--li">
|
||||
<a href="https://www.knative.dev/docs#documentation" data-href="https://www.knative.dev/docs#documentation" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener">Getting started documentation</a>
|
||||
</li>
|
||||
<li name="a9ca" id="a9ca" class="graf graf--li graf-after--li">
|
||||
<a href="https://www.knative.dev/docs#samples-and-demos" data-href="https://www.knative.dev/docs#samples-and-demos" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener">Samples and demos</a>
|
||||
</li>
|
||||
<li name="fe75" id="fe75" class="graf graf--li graf-after--li">
|
||||
<a href="https://www.knative.dev/contributing/#meetings-and-work-groups" data-href="https://www.knative.dev/contributing/#meetings-and-work-groups" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener">Knative meetings and work groups</a>
|
||||
</li>
|
||||
<li name="cf03" id="cf03" class="graf graf--li graf-after--li">
|
||||
<a href="https://www.knative.dev/contributing/#questions-and-issues" data-href="https://www.knative.dev/contributing/#questions-and-issues" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener">Questions and issues</a>
|
||||
</li>
|
||||
<li name="19ce" id="19ce" class="graf graf--li graf-after--li">Knative on Twitter (<a href="https://twitter.com/KnativeProject" data-href="https://twitter.com/KnativeProject" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener" target="_blank">@KnativeProject</a>)</li>
|
||||
<li name="5fcb" id="5fcb" class="graf graf--li graf-after--li">Knative on <a href="https://stackoverflow.com/questions/tagged/knative" data-href="https://stackoverflow.com/questions/tagged/knative" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener" target="_blank">StackOverflow</a>
|
||||
</li>
|
||||
<li name="3813" id="3813" class="graf graf--li graf-after--li graf--trailing">Knative <a href="https://slack.knative.dev/" data-href="https://slack.knative.dev/" class="markup--anchor markup--li-anchor" rel="nofollow noopener nofollow noopener" target="_blank">Slack</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|