Knative 快捷操作命令 Kn 介绍

简介:kn 是 Knative 命令行操作客户端。 通过 kn 可以方便的操作Knative 相关的资源。

kn 是 Knative 命令行操作客户端。 通过 kn 可以方便的操作Knative 相关的资源。

安装 Kn

可以通过官方获取对应的 Kn 二进制
• macOS
• Linux
• Windows
kn 会与 kubectl 使用同样的config 文件,默认使用 $HOME/.kube/config

服务管理

使用 Kn 命令可以执行: list, create, delete, apply, 和 update 操作Knative services.

创建服务

使用 create 命令:
kn service create
示例:

$ kn service create helloworld-go --env TARGET=knative --image registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
yuncs.com/knative-sample/helloworld-go:73fbdd56
Creating service 'helloworld-go' in namespace 'default':0.116s The Route is still working to reflect the latest desired specification.0.216s Configuration "helloworld-go" is waiting for a Revision to become ready.3.075s ...3.149s Ingress has not yet been reconciled.3.299s ...3.762s Ready to serve.
Service 'helloworld-go' created to latest revision 'helloworld-go-pyqqz-1' is available at URL:
http://helloworld-go.default.example.com

使用 apply 命令:
kn service apply
示例:

# Create an initial service with using 'kn service apply', if the service has not
# been already created
kn service apply s0 --image registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
# Apply the service again which is a no-operation if none of the options changed
kn service apply s0 --image registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
# Add an environment variable to your service. Note, that you have to always fully
# specify all parameters (in contrast to 'kn service update')
kn service apply s0 --image registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 --env TARGET=knative
# Read the service declaration from a file
kn service apply s0 --filename my-svc.yml

查看服务

查询服务列表示例:

kn service list
NAME            URL                                        LATEST                  AGE   CONDITIONS   READY   REASON
helloworld-go   http://helloworld-go.default.example.com   helloworld-go-pyqqz-1   55s   3 OK / 3     True

查询服务详情示例:

kn service describe helloworld-go
Name:       helloworld-go
Namespace:  default
Age:        14m
URL:        http://helloworld-go.default.example.com
Revisions:100%  @latest (helloworld-go-cvclp-2) [2](9m)Image:  registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8 (pinned to 032b80)
Conditions:OK TYPE                   AGE REASON++ Ready                   9m++ ConfigurationsReady     9m++ RoutesReady             9m

或者以 yaml 方式展示详情:

$ kn service describe helloworld-go -oyaml
apiVersion: serving.knative.dev/v1
kind: Service
metadata:annotations:serving.knative.dev/creator: 1041208914252405-1606806762serving.knative.dev/lastModifier: 1041208914252405-1606806762creationTimestamp: "2020-12-09T06:07:41Z"generation: 2name: helloworld-gonamespace: defaultresourceVersion: "39555635"selfLink: /apis/serving.knative.dev/v1/namespaces/default/services/helloworld-gouid: 763e8214-7c2d-476c-bd88-40b32a30597d
spec:template:metadata:annotations:client.knative.dev/user-image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8creationTimestamp: nullname: helloworld-go-cvclp-2spec:containerConcurrency: 0containers:- env:- name: TARGETvalue: knativeimage: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8name: user-containerreadinessProbe:successThreshold: 1tcpSocket:port: 0resources: {}timeoutSeconds: 300traffic:- latestRevision: truepercent: 100
status:address:url: http://helloworld-go.default.svc.cluster.localconditions:- lastTransitionTime: "2020-12-09T06:13:33Z"status: "True"type: ConfigurationsReady- lastTransitionTime: "2020-12-09T06:13:34Z"status: "True"type: Ready- lastTransitionTime: "2020-12-09T06:13:34Z"status: "True"type: RoutesReadylatestCreatedRevisionName: helloworld-go-cvclp-2latestReadyRevisionName: helloworld-go-cvclp-2observedGeneration: 2traffic:- latestRevision: truepercent: 100revisionName: helloworld-go-cvclp-2url: http://helloworld-go.default.example.com

更新服务(创建新版本)

使用 update 命令:
kn service update NAME
示例:

$ kn service update helloworld-go --image registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8
Updating Service 'helloworld-go' in namespace 'default':3.609s Traffic is not yet migrated to the latest revision.3.631s Ingress has not yet been reconciled.4.066s Ready to serve.
Service 'helloworld-go' updated to latest revision 'helloworld-go-cvclp-2' is available at URL:
http://helloworld-go.default.example.com

使用 apply 也可进行更新服务

kn service apply
# Add an environment variable to your service. Note, that you have to always fully
# specify all parameters (in contrast to 'kn service update')
kn service apply s0 --image registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8 --env TARGET=knative

删除服务

示例:

kn service delete helloworld-go

版本管理

查看版本

kn revision list
NAME                    SERVICE         TRAFFIC   TAGS   GENERATION   AGE     CONDITIONS   READY     REASON
helloworld-go-cvclp-2   helloworld-go   100%             2            40s     4 OK / 4     True
helloworld-go-pyqqz-1   helloworld-go                    1            6m29s   3 OK / 4     True

查看版本详情

$ kn revision describe helloworld-go-cvclp-2
Name:       helloworld-go-cvclp-2
Namespace:  default
Age:        3m
Image:      registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8 (pinned to 032b80)
Env:        TARGET=knative
Service:    helloworld-go
Conditions:OK TYPE                  AGE REASON++ Ready                  3m++ ContainerHealthy       3m++ ResourcesAvailable     3mI Active                 2m NoTraffic

删除版本

$ kn revision delete helloworld-go-pyqqz-1
Revision 'helloworld-go-pyqqz-1' deleted in namespace 'default'.

其它

除了上面介绍的 service、revision。 Kn 还支持如下的资源操作, 有兴趣的可以自己试用一下。
• kn broker - 管理事件 brokers
• kn channel - 管理事件 channels
• kn route - 管理服务路由 routes
• kn source - 管理事件源 sources
• kn trigger - 管理事件 triggers

原文链接:https://developer.aliyun.com/article/779806?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部