knd操作教程(Knative快捷操作命令Kn)
2023-05-29 22:28:28 1
knd操作教程?簡介: kn 是 Knative 命令行操作客戶端 通過 kn 可以方便的操作Knative 相關的資源,接下來我們就來聊聊關於knd操作教程?以下內容大家不妨參考一二希望能幫到您!

knd操作教程
簡介: kn 是 Knative 命令行操作客戶端。 通過 kn 可以方便的操作Knative 相關的資源。
安裝 Kn可以通過官方獲取對應的 Kn 二進位• macOS• Linux• Windowskn 會與 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:73fbdd56yuncs.com/knative-sample/helloworld-go:73fbdd56Creating 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 createdkn 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 changedkn 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 filekn service apply s0 --filename my-svc.yml
查看服務查詢服務列表示例:
kn service listNAME URL LATEST AGE CONDITIONS READY REASONhelloworld-go http://helloworld-go.default.example.com helloworld-go-pyqqz-1 55s 3 OK / 3 True
查詢服務詳情示例:
kn service describe helloworld-goName: helloworld-goNamespace: defaultAge: 14mURL: http://helloworld-go.default.example.comRevisions: 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 -oyamlapiVersion: serving.knative.dev/v1kind: Servicemetadata: annotations: serving.knative.dev/creator: 1041208914252405-1606806762 serving.knative.dev/lastModifier: 1041208914252405-1606806762 creationTimestamp: "2020-12-09T06:07:41Z" generation: 2 name: helloworld-go namespace: default resourceVersion: "39555635" selfLink: /apis/serving.knative.dev/v1/namespaces/default/services/helloworld-go uid: 763e8214-7c2d-476c-bd88-40b32a30597dspec: template: metadata: annotations: client.knative.dev/user-image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8 creationTimestamp: null name: helloworld-go-cvclp-2 spec: containerConcurrency: 0 containers: - env: - name: TARGET value: knative image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8 name: user-container readinessProbe: successThreshold: 1 tcpSocket: port: 0 resources: {} timeoutSeconds: 300 traffic: - latestRevision: true percent: 100status: address: url: http://helloworld-go.default.svc.cluster.local conditions: - 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: RoutesReady latestCreatedRevisionName: helloworld-go-cvclp-2 latestReadyRevisionName: helloworld-go-cvclp-2 observedGeneration: 2 traffic: - latestRevision: true percent: 100 revisionName: helloworld-go-cvclp-2 url: 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:160e4dc8Updating 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 listNAME SERVICE TRAFFIC TAGS GENERATION AGE CONDITIONS READY REASONhelloworld-go-cvclp-2 helloworld-go 100% 2 40s 4 OK / 4 Truehelloworld-go-pyqqz-1 helloworld-go 1 6m29s 3 OK / 4 True
查看版本詳情$ kn revision describe helloworld-go-cvclp-2Name: helloworld-go-cvclp-2Namespace: defaultAge: 3mImage: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8 (pinned to 032b80)Env: TARGET=knativeService: helloworld-goConditions: OK TYPE AGE REASON Ready 3m ContainerHealthy 3m ResourcesAvailable 3m I Active 2m NoTraffic
刪除版本$ kn revision delete helloworld-go-pyqqz-1Revision '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
作者:元毅
本文為阿里雲原創內容,未經允許不得轉載
,