Knative
7777 ワード
Knative概念
2018年7月に発売された新プロジェクト
3つの製品と機能
こつ
istioにバインド
こつこうぞう
Knativeアプリケーションの導入
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: "helloworld"
spec:
runLatest:
configuration:
revisionTemplate:
spec:
container:
image: "gcr.io/knative-samples/helloworld-go"
env:
- name: "TARGET"
value: "world"
kubectl get configuration,revision,route
NAME CREATED AT
configuration.serving.knative.dev/helloworld 28m
NAME CREATED AT
revision.serving.knative.dev/helloworld-00001 28m
NAME CREATED AT
route.serving.knative.dev/helloworld 28m
istio gatewayによる受信trafaricの定義と確認
Istioの有効化
コツアプリケーションの設定
テストと検証方法
Hello world!
Knative (blue/green deploy), routing traffic
blue/green deployとは、新しいバージョンのアプリケーションがデプロイメントポリシーを使用して作成された場合、version 2(green)にトラフィックの一部を送信することで、実行環境に問題があるかどうかを確認し、トラフィックを増加させながらVersion 2に完全に変更する方法論です.
この点をテストするためにyamlを修正する必要があります
初期v 1導入
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: canary
spec:
runLatest:
configuration:
revisionTemplate:
spec:
container:
image: gcr.io/knative-samples/knative-route-demo:blue
env:
- name: T_VERSION
value: "blue"
配備後、改訂名がcanary-001(仮称)であることを確認できます.
v 2とともに青/緑を配置
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: canary
spec:
release:
revisions: ["canary-00001", "canary-00002"] # [current, candidate]
rolloutPercent: 20 # 20% to green revision
configuration:
revisionTemplate:
spec:
container:
image: gcr.io/knative-samples/knative-route-demo:green
env:
- name: T_VERSION
value: "green"
最近のバージョンでなくても、「リリースリビジョン」フィールド
kubectl describe route canary
...
Status:
Traffic:
Name: current
Percent: 80
Revision Name: canary-00001
Name: candidate
Percent: 20
Revision Name: canary-00002
Name: latest
Percent: 0
Revision Name: canary-00002
Autoscale
Build->Tekton Pipelines
apiVersion: build.knative.dev/v1alpha1
kind: Build
metadata:
name: example-build
spec:
source:
git:
url: "https://github.com/knative/docs.git"
revision: "v0.1.x"
subPath: "serving/samples/helloworld-go/"
steps:
- name: build-and-push
image: "gcr.io/kaniko-project/executor:v0.6.0"
args:
- "--dockerfile=/workspace/Dockerfile"
- "--destination=gcr.io/<your-project-id>/helloworld-go:v1"
内部にステージがあります...
BuildTemplate, ClusterBuildTemplate
apiVersion: build.knative.dev/v1alpha1
kind: BuildTemplate
metadata:
name: kaniko
spec:
parameters:
- name: IMAGE
description: name of the image to be tagged and pushed
steps:
- name: build-and-push
image: "gcr.io/kaniko-project/executor:v0.6.0"
args: ["--destination=${IMAGE}"]
---
apiVersion: build.knative.dev/v1alpha1
kind: Build
metadata:
name: templatized-build
spec:
source:
git:
url: "https://github.com/knative/docs.git"
revision: "v0.1.x"
subPath: "serving/samples/helloworld-go/"
template:
name: kaniko
arguments:
- name: IMAGE
value: "gcr.io/<your-project-id>/helloworld-go:v2"
構成
Reference
この問題について(Knative), 我々は、より多くの情報をここで見つけました https://velog.io/@idnnbi/Knative-jkazf7vmテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol