1장. Knative Serving CLI 명령
1.1. kn service 명령
다음 명령을 사용하여 Knative 서비스를 생성하고 관리할 수 있습니다.
1.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 showcase \ --image quay.io/openshift-knative/showcase
출력 예
Creating service 'showcase' in namespace 'default': 0.271s The Route is still working to reflect the latest desired specification. 0.580s Configuration "showcase" is waiting for a Revision to become ready. 3.857s ... 3.861s Ingress has not yet been reconciled. 4.270s Ready to serve. Service 'showcase' created with latest revision 'showcase-00001' and URL: http://showcase-default.apps-crc.testing
-
1.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
1.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>
1.1.4. Knative CLI를 사용하여 서버리스 애플리케이션 설명
kn service describe
명령을 사용하여 Knative 서비스를 설명할 수 있습니다.
명령 예
서비스를 설명합니다.
$ kn service describe --verbose <service_name>
--verbose
플래그는 선택 사항이지만 자세한 설명을 제공하기 위해 포함할 수 있습니다. 일반 출력과 자세한 출력의 차이점은 다음 예에 표시됩니다.--verbose
플래그를 사용하지 않는 출력 예Name: showcase Namespace: default Age: 2m URL: http://showcase-default.apps.ocp.example.com Revisions: 100% @latest (showcase-00001) [1] (2m) Image: quay.io/openshift-knative/showcase (pinned to aaea76) Conditions: OK TYPE AGE REASON ++ Ready 1m ++ ConfigurationsReady 1m ++ RoutesReady 1m
--verbose
플래그를 사용하는 출력 예Name: showcase Namespace: default Annotations: serving.knative.dev/creator=system:admin serving.knative.dev/lastModifier=system:admin Age: 3m URL: http://showcase-default.apps.ocp.example.com Cluster: http://showcase.default.svc.cluster.local Revisions: 100% @latest (showcase-00001) [1] (3m) Image: quay.io/openshift-knative/showcase (pinned to aaea76) Env: GREET=Bonjour 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