OpenShift Knative 2 (4) - 제 애플리케이션 서버를 사용

완료 한 후 " Knative의 OpenShift (4) (1) - Knative 서버를 사용하지 않는 아키텍처 환경 만들기 ", 우리는 Knative의 서버를 사용하지 않는 응용 프로그램을 배포 할 수 있습니다. 이 자료 A 서버를 사용하지 않는 응용 프로그램 (땅딸막-servless)의 첫번째 배치. 다음 비교, 비 배포 된 응용 프로그램 서버를 사용하지 않는 (땅딸보), 마지막 두 응용 프로그램을 비교 효과로.

비적용의 서버를 구축 (땅딸막)

  1. 프로젝트 및 권한 만들기
$ oc new-project kn-demo
$ oc create serviceaccount pipeline
$ oc adm policy add-scc-to-user privileged -z pipeline
$ oc adm policy add-role-to-user edit -z pipeline
  1. tekton에 openshift 클라이언트를 할 수 있습니다
$ oc create -f https://raw.githubusercontent.com/tektoncd/catalog/master/openshift-client/openshift-client-task.yaml
  1. Tekton는 작업 이동 S2I을 만드는 데 사용할 수 있습니다
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-catalog/master/s2i-go/s2i-go-task.yaml

파이프 라인 및 전화 Rource의 tekton 만들기

$ oc create -f https://raw.githubusercontent.com/liuxiaoyu-git/knative-on-ocp4/master/pipeline/openshift-objects.yaml
$ oc create -f https://raw.githubusercontent.com/liuxiaoyu-git/knative-on-ocp4/master/pipeline/pipeline.yaml
$ oc create -f https://raw.githubusercontent.com/liuxiaoyu-git/knative-on-ocp4/master/pipeline/pipeline-resources.yaml
$ tkn tasks list
NAME               AGE
openshift-client   9 minutes ago
$ tkn pipeline list
NAME              AGE             LAST RUN   STARTED   DURATION   STATUS
deploy-pipeline   3 minutes ago   ---        ---       ---        ---
$ tkn resource list
NAME                TYPE    DETAILS
sourcecode-git      git     url: https://github.com/liuxiaoyu/openshift-knative-application
application-image   image   url: image-registry.openshift-image-registry.svc:5000/kn-demo/dumpy
  1. 시작 Tekton 파이프 라인을 실행
$ tkn pipeline start deploy-pipeline -s pipeline -r app-git=sourcecode-git -r app-image=application-image
Pipelinerun started: deploy-pipeline-run-m65rw
Showing logs...
[build : create-dir-image-wj45n] {"level":"warn","ts":1576916492.4300456,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: \"KO_DATA_PATH\" does not exist or is empty"}
[build : create-dir-image-wj45n] {"level":"info","ts":1576916492.4334698,"logger":"fallback-logger","caller":"bash/main.go:64","msg":"Successfully executed command \"sh -c mkdir -p /workspace/output/image\"; output "}
[build : git-source-sourcecode-git-h5kt6] {"level":"warn","ts":1576916492.9045074,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: \"KO_DATA_PATH\" does not exist or is empty"}
[build : git-source-sourcecode-git-h5kt6] {"level":"info","ts":1576916496.1496713,"logger":"fallback-logger","caller":"git/git.go:103","msg":"Successfully cloned https://github.com/redhatworkshops/openshift-knative-application @ master in path /workspace/source"}
[build : generate] Application dockerfile generated in /gen-source/Dockerfile.gen
[build : build] STEP 1: FROM registry.access.redhat.com/devtools/go-toolset-rhel7
[build : build] Getting image source signatures
[build : build] Copying blob sha256:d327c1598329494579ba3d62999df41f11bff9a2bfad57fb49b30324404ac42a
[build : build] Copying blob sha256:b3f9e500f5dfaff6c8eddc3ed2dd16669c83e7f1efb3ee1aa70d16d649f5dd2c
[build : build] Copying blob sha256:f6aa8ea214cf89cc2d98e9a37b312efca60118d3426b54d9301a88aa475f5721
[build : build] Copying blob sha256:77a3ebe83e4572edc5ae967ff01e7a5caebe18dff17cb35f1f8f7aa7967ab9ab
[build : build] Copying blob sha256:48ed3bfd822646e50676cd7606af43e984db141bb1755904362f1eb64684c68a
[build : build] Copying config sha256:79f73d426b92b081c8f2bab53aa6384fbe0d06ddb96807034ce7c49123a17e98
[build : build] Writing manifest to image destination
[build : build] Storing signatures
[build : build] STEP 2: LABEL "io.openshift.s2i.build.image"="registry.access.redhat.com/devtools/go-toolset-rhel7"       "io.openshift.s2i.build.source-location"="."
[build : build] 6ed01800dd8587ceabbfdf0d7e73b395f3fb12e3b96d1395a66cbdeb60265156
[build : build] STEP 3: USER root
[build : build] 2ed70b4d5fc6ec25a620dde236ea8a64af9edf655c6db46a50b3d1c8f9c23884
[build : build] STEP 4: COPY upload/src /tmp/src
[build : build] 8414df122ca80dbb8a3af67e9e01ab47bbec3c1c0f1c220db2534005a30e30ba
[build : build] STEP 5: RUN chown -R 1001:0 /tmp/src
[build : build] fd686c4cabcbb709904f607e88da99d4928b4d4ac2547d5a9bc985411c605881
[build : build] STEP 6: USER 1001
[build : build] 05a48e0336d343840417e02dc75ae06e8310903f82d9d115dba7a308911c46fb
[build : build] STEP 7: RUN /usr/libexec/s2i/assemble
[build : build] /tmp/src ~
[build : build] ~
[build : build] 14074381c9c89dafd170d21f9e5905808ecbe572c65774bd0c3f3db650940b5a
[build : build] STEP 8: CMD /usr/libexec/s2i/run
[build : build] STEP 9: COMMIT image-registry.openshift-image-registry.svc:5000/kn-demo/dumpy
[build : build] cf7a757b4c3a59a3c8571b43de9bc01ec0f4a36f4db11597d9389db745555b50
[build : push] Getting image source signatures
[build : push] Copying blob sha256:08c4aa164cbaadfb32414e39d9b252a5382b9db1dd8e028fb11805074edbe608
[build : push] Copying blob sha256:49823a90179137e22fcd21aeabeb7b986cc1a1a368577a18125dbb7d7fdfbc5e
[build : push] Copying blob sha256:79078fe79bd38d7b89566544dc788f0080ed121121c846774033d93731732a0c
[build : push] Copying blob sha256:a551fb857b61df88ae64cded378611456294ee7143bc068eb3a9ee1a29934658
[build : push] Copying blob sha256:0ad3798cc88fadad4a391d25671685eb1c5e3714d1256eba133647aabaee76bc
[build : push] Copying blob sha256:c4ab366b65c5e7e2c77b7311575a5a62318eb862ed2846492c576a2a5318fc0b
[build : push] Copying blob sha256:7257654ef482b678e08febe660281e803a6c0e1f3f9c68ea2ce078b36d96a15a
[build : push] Copying blob sha256:71da8c1ba5badb93fb5ea4b2fee3de0f09b8635d397cc7c0ec72c17e09cfe476
[build : push] Copying config sha256:cf7a757b4c3a59a3c8571b43de9bc01ec0f4a36f4db11597d9389db745555b50
[build : push] Writing manifest to image destination
[build : push] Copying config sha256:cf7a757b4c3a59a3c8571b43de9bc01ec0f4a36f4db11597d9389db745555b50
[build : push] Writing manifest to image destination
[build : push] Storing signatures
[build : image-digest-exporter-vk4tr] {"level":"warn","ts":1576916688.3277884,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: \"KO_DATA_PATH\" does not exist or is empty"}
[build : image-digest-exporter-vk4tr] {"level":"info","ts":1576916688.3279572,"logger":"fallback-logger","caller":"imagedigestexporter/main.go:58","msg":"ImageResource application-image doesn't have an index.json file: stat /builder/home/image-outputs/image/index.json: no such file or directory"}
[deploy : oc] deploymentconfig.apps.openshift.io/dumpy rolled out
  1. 어떤 방법으로도 Tekton 파이프 라인 로그를 볼 수 있습니다.
$ tkn pipeline list
NAME              AGE              LAST RUN                    STARTED          DURATION    STATUS
deploy-pipeline   19 minutes ago   deploy-pipeline-run-m65rw   15 minutes ago   7 minutes   Succeeded
$ tkn pipelinerun logs -f deploy-pipeline-run-m65rw
  1. 완료 후 Tekton 파이프 라인은 다음과 같은 운영이보기 OpenShift 콘솔의 개발자에 배포 - 파이프 라인 파이프 라인을 명시 것을 알 수있다.
    그림 삽입 설명 여기
    그림 삽입 설명 여기
    그림 삽입 설명 여기
    그림 삽입 설명 여기
  2. 경로 주소의 액세스 땅딸막 응용 프로그램, 응용 프로그램에 액세스 할 수 있는지 확인합니다.
$ oc get route
NAME    HOST/PORT                        PATH   SERVICES   PORT       TERMINATION   WILDCARD
dumpy   dumpy-kn-demo.apps-crc.testing          dumpy      8080-tcp                 None
$ curl http://dumpy-kn-demo.apps-crc.testing/health
                    888 888             888
                    888 888             888
                    888 888             888
888d888 .d88b.  .d88888 88888b.  8888b. 888888
888P"  d8P  Y8bd88" 888 888 "88b    "88b888
888    88888888888  888 888  888.d888888888
888    Y8b.    Y88b 888 888  888888  888Y88b.
888     "Y8888  "Y88888 888  888"Y888888 "Y888

응용 프로그램 배포 Knative 서버를 사용하지 않는 (땅딸막-서버를 사용하지 않는) \

  1. 땅딸막를 생성 같이 ImageStream 단계에 따라 서비스의 Tekton의 땅딸막 - 서버리스라는 이름의 파일을 만듭니다.
$ oc describe is dumpy
Name:				dumpy
Namespace:			kn-demo
Created:			2 hours ago
Labels:				app=dumpy
Annotations:		<none>
Image Repository:	default-route-openshift-image-registry.apps-crc.testing/kn-demo/dumpy
Image Lookup:		local=false
Unique Images:		1
Tags:				1
latest
  no spec tag
 . image-registry.openshift-image-registry.svc:5000/kn-demo/dumpy@sha256:9c5b1dc90f9b9fc54b1dec625251340d8b774e15bcad6664869c3db8529314f0
$ kn service create dumpy-serverless --image=image-registry.openshift-image-registry.svc:5000/kn-demo/dumpy -l app.kubernetes.io/name=golang
Creating service 'dumpy-serverless' in namespace 'kn-demo':
  0.136s The Route is still working to reflect the latest desired specification.
  0.161s Configuration "dumpy-serverless" is waiting for a Revision to become ready.
 28.368s ...
 28.551s Ingress has not yet been reconciled.
 69.596s Ready to serve.
  1. 선보기 Knative는 OpenShift 콘솔 관리자 또는 명령을 사용하여 상태의 자원을 관련.
    상기 식에서 "KN 서비스 목록"명령 등가물 "OC는 ksvc GET"명령; "KN 버전 목록"명령 등가물 "OC get 및 개정"명령; "KN 경로 목록"명령과 동일
$ kn service list
NAME               URL                                                LATEST                     AGE   CONDITIONS   READY   REASON
dumpy-serverless   http://dumpy-serverless.kn-demo.apps-crc.testing   dumpy-serverless-tbcvz-1   79m   3 OK / 3     True    
$ oc get ksvc -n kn-demo
NAME               URL                                                LATESTCREATED              LATESTREADY                READY   REASON
dumpy-serverless   http://dumpy-serverless.kn-demo.apps-crc.testing   dumpy-serverless-tbcvz-1   dumpy-serverless-tbcvz-1   True    
$ kn revision list 
NAME                       SERVICE            GENERATION   AGE   CONDITIONS   READY   REASON
dumpy-serverless-tbcvz-1   dumpy-serverless   1            79m   3 OK / 4     True    
$ oc get revision -n kn-demo
NAME                       CONFIG NAME        K8S SERVICE NAME           GENERATION   READY   REASON
dumpy-serverless-tbcvz-1   dumpy-serverless   dumpy-serverless-tbcvz-1   1            True    
$ kn route list
NAME               URL                                                READY
dumpy-serverless   http://dumpy-serverless.kn-demo.apps-crc.testing   True
$ oc get route.serving.knative.dev -n kn-demo
NAME               URL                                                READY   REASON
dumpy-serverless   http://dumpy-serverless.kn-demo.apps-crc.testing   True    

그림 삽입 설명 여기
그림 삽입 설명 여기
그림 삽입 설명 여기
경로 주소 3. 액세스 땅딸막-서버를 사용하지 않는 응용 프로그램, 응용 프로그램에 액세스 할 수 있는지 확인합니다.

$ kn route list
NAME               URL                                                READY
dumpy-serverless   http://dumpy-serverless.kn-demo.apps-crc.testing   True
$ curl http://dumpy-serverless.kn-demo.apps-crc.testing/health
                    888 888             888
                    888 888             888
                    888 888             888
888d888 .d88b.  .d88888 88888b.  8888b. 888888
888P"  d8P  Y8bd88" 888 888 "88b    "88b888
888    88888888888  888 888  888.d888888888
888    Y8b.    Y88b 888 888  888888  888Y88b.
888     "Y8888  "Y88888 888  888"Y888888 "Y888

땅딸막-서버를 사용 땅딸보과의 비교

  1. 포드 응용 프로그램은 "0"등급에 감소 땅딸막 실행됩니다 :
$ oc idle dumpy
WARNING: idling when network policies are in place may cause connections to bypass network policy entirely
The service "kn-demo/dumpy" has been marked as idled
The service will unidle DeploymentConfig "kn-demo/dumpy" to 1 replicas once it receives traffic
DeploymentConfig "kn-demo/dumpy" has been idled
  1. 현재 포드의 경우는 실행중인 응용 프로그램 및 땅딸막 한 땅딸막 - 서버를 사용하지 않는 응용 프로그램을 볼 수 있습니다. 참고 개의 애플리케이션 땅딸막 직접 "0"으로 감소 된 상기 해당하는 포드, 없다는 것을 상기 서버없는 땅딸막-Knative 자동으로 "0"으로 감소된다.
$ oc get pod -w
NAME                                                READY   STATUS      RESTARTS   AGE
deploy-pipeline-run-m65rw-build-zc926-pod-4c22ce    0/6     Completed   0          70m
deploy-pipeline-run-m65rw-deploy-wtz72-pod-6bf2ef   0/1     Completed   0          63m
dumpy-1-deploy                                      0/1     Completed   0          63m
  1. Toplogy OpenShift 콘솔 개발자의 경우 본 상태를 나타낸 도면이다 :
    그림 삽입 설명 여기
  2. 땅딸막-서버를 사용하지 않는 응용 프로그램 땅딸막 각 응용 프로그램에 액세스를 실행합니다.
$ curl http://dumpy-kn-demo.apps-crc.testing/health
                    888 888             888
                    888 888             888
                    888 888             888
888d888 .d88b.  .d88888 88888b.  8888b. 888888
888P"  d8P  Y8bd88" 888 888 "88b    "88b888
888    88888888888  888 888  888.d888888888
888    Y8b.    Y88b 888 888  888888  888Y88b.
888     "Y8888  "Y88888 888  888"Y888888 "Y888
$ curl http://dumpy-serverless.kn-demo.apps-crc.testing/health
                    888 888             888
                    888 888             888
                    888 888             888
888d888 .d88b.  .d88888 88888b.  8888b. 888888
888P"  d8P  Y8bd88" 888 888 "88b    "88b888
888    88888888888  888 888  888.d888888888
888    Y8b.    Y88b 888 888  888888  888Y88b.
888     "Y8888  "Y88888 888  888"Y888888 "Y888
  1. (2) 연속으로 땅딸막 포드 실행되는 응용 프로그램이 자동으로 "0"으로 환원되지 않는 "1"이 증가 된 상기 상황 포드 모니터링하고 땅딸막-servless 애플리케이션 자동 후 사용자 요구에 응답하여 "0"으로 감소 . 도 OpenShift 콘솔에서 응용 프로그램 땅딸막-servless 다음과 같은 상태의 확인.
    그림 삽입 설명 여기
게시 54 개 원래 기사 · 원의 칭찬 0 · 조회수 (1113)

추천

출처blog.csdn.net/weixin_43902588/article/details/103645681