4.4. Knative Serving CLI 명령
다음 Knative(kn
) CLI 명령을 사용하여 클러스터에서 Knative Serving 작업을 완료할 수 있습니다.
4.4.1. kn service 명령
다음 명령을 사용하여 Knative 서비스를 생성하고 관리할 수 있습니다.
4.4.1.1. Knative CLI를 사용하여 서버리스 애플리케이션 생성
Knative(kn
) CLI를 사용하여 서버리스 애플리케이션을 생성하면 YAML 파일을 직접 수정하는 것보다 더 간소화되고 직관적인 사용자 인터페이스를 제공합니다. kn service create
명령을 사용하여 기본 서버리스 애플리케이션을 생성할 수 있습니다.
사전 요구 사항
- OpenShift Serverless Operator 및 Knative Serving이 클러스터에 설치되어 있습니다.
-
Knative(
kn
) CLI가 설치되어 있습니다. - 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
절차
Knative 서비스를 생성합니다.
$ kn service create <service_name> --image <image> --tag <tag-value>
다음과 같습니다.
-
--image
는 애플리케이션의 이미지 URI입니다. --tag
는 서비스로 생성된 초기 버전에 태그를 추가하는 데 사용할 수 있는 선택적 플래그입니다.명령 예
$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
출력 예
Creating service 'event-display' in namespace 'default': 0.271s The Route is still working to reflect the latest desired specification. 0.580s Configuration "event-display" is waiting for a Revision to become ready. 3.857s ... 3.861s Ingress has not yet been reconciled. 4.270s Ready to serve. Service 'event-display' created with latest revision 'event-display-bxshg-1' and URL: http://event-display-default.apps-crc.testing
-
4.4.1.2. Knative CLI를 사용하여 서버리스 애플리케이션 업데이트
서비스를 단계적으로 구축할 때 명령줄에서 대화형 세션에 kn service update
명령을 사용할 수 있습니다. kn service apply
명령과 달리 kn service update
명령을 사용하는 경우 Knative 서비스의 전체 구성이 아닌 업데이트하려는 변경 사항만 지정해야 합니다.
명령 예
새 환경 변수를 추가하여 서비스를 업데이트합니다.
$ kn service update <service_name> --env <key>=<value>
새 포트를 추가하여 서비스를 업데이트합니다.
$ kn service update <service_name> --port 80
새 요청 및 제한 매개변수를 추가하여 서비스를 업데이트합니다.
$ kn service update <service_name> --request cpu=500m --limit memory=1024Mi --limit cpu=1000m
latest
태그를 개정 버전에 할당합니다.$ kn service update <service_name> --tag <revision_name>=latest
서비스의 최신
READY
버전에 대한 태그를testing
에서staging
으로 업데이트합니다.$ kn service update <service_name> --untag testing --tag @latest=staging
트래픽의 10%를 수신하는 버전에
test
태그를 추가하고 나머지 트래픽을 서비스의 최신READY
버전으로 전송합니다.$ kn service update <service_name> --tag <revision_name>=test --traffic test=10,@latest=90
4.4.1.3. 서비스 선언 적용
kn service apply
명령을 사용하여 Knative 서비스를 선언적으로 구성할 수 있습니다. 서비스가 존재하지 않으면 기존 서비스가 변경된 옵션으로 업데이트됩니다.
kn service apply
명령은 사용자가 일반적으로 단일 명령으로 서비스 상태를 완전히 지정하여 대상 상태를 선언하려는 셸 스크립트 또는 지속적 통합 파이프라인에 특히 유용합니다.
kn service apply
를 사용하는 경우 Knative 서비스에 대한 전체 구성을 제공해야 합니다. 이 동작은 업데이트하려는 옵션을 명령에서 지정하기만 하면 되는 kn service update
명령과 다릅니다.
명령 예
서비스를 생성합니다.
$ kn service apply <service_name> --image <image>
서비스에 환경 변수를 추가합니다.
$ kn service apply <service_name> --image <image> --env <key>=<value>
JSON 또는 YAML 파일에서 서비스 선언을 읽습니다.
$ kn service apply <service_name> -f <filename>
4.4.1.4. Knative CLI를 사용하여 서버리스 애플리케이션 설명
kn service describe
명령을 사용하여 Knative 서비스를 설명할 수 있습니다.
명령 예
서비스를 설명합니다.
$ kn service describe --verbose <service_name>
--verbose
플래그는 선택 사항이지만 자세한 설명을 제공하기 위해 포함할 수 있습니다. 일반 출력과 자세한 출력의 차이점은 다음 예에 표시됩니다.--verbose
플래그를 사용하지 않는 출력 예Name: hello Namespace: default Age: 2m URL: http://hello-default.apps.ocp.example.com Revisions: 100% @latest (hello-00001) [1] (2m) Image: docker.io/openshift/hello-openshift (pinned to aaea76) Conditions: OK TYPE AGE REASON ++ Ready 1m ++ ConfigurationsReady 1m ++ RoutesReady 1m
--verbose
플래그를 사용하는 출력 예Name: hello Namespace: default Annotations: serving.knative.dev/creator=system:admin serving.knative.dev/lastModifier=system:admin Age: 3m URL: http://hello-default.apps.ocp.example.com Cluster: http://hello.default.svc.cluster.local Revisions: 100% @latest (hello-00001) [1] (3m) Image: docker.io/openshift/hello-openshift (pinned to aaea76) Env: RESPONSE=Hello Serverless! Conditions: OK TYPE AGE REASON ++ Ready 3m ++ ConfigurationsReady 3m ++ RoutesReady 3m
YAML 형식으로 서비스를 설명합니다.
$ kn service describe <service_name> -o yaml
JSON 형식으로 서비스를 설명합니다.
$ kn service describe <service_name> -o json
서비스 URL만 인쇄합니다.
$ kn service describe <service_name> -o url