arrow_back

Google Kubernetes Engine 보안 비밀 및 ConfigMap으로 작업하기

로그인 가입
700개 이상의 실습 및 과정 이용하기

Google Kubernetes Engine 보안 비밀 및 ConfigMap으로 작업하기

실습 1시간 universal_currency_alt 크레딧 5개 show_chart 입문
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
700개 이상의 실습 및 과정 이용하기

개요

이 실습에서는 암호화된 구성 정보와 암호화되지 않은 구성 정보를 설정합니다. 암호화된 구성 정보는 보안 비밀로 저장됩니다. 암호화되지 않은 구성 정보는 ConfigMap으로 저장됩니다.

이렇게 하면 이러한 정보가 코드베이스에 하드 코딩되는 것을 방지합니다. 보안 비밀에 속하는 사용자 인증 정보(API 키 등)는 사전에 암호화되지 않은 한 GitHub와 같은 코드 저장소 안으로 이동해서는 안 됩니다(암호화된 경우에도 따로 저장하는 것이 좋음).

목표

이 실습에서는 다음 작업을 수행하는 방법을 알아봅니다.

  • kubectl 명령어 및 매니페스트 파일을 사용하여 보안 비밀을 만듭니다.
  • kubectl 명령어 및 매니페스트 파일을 사용하여 ConfigMap을 만듭니다.
  • 환경 변수 또는 마운트된 볼륨을 사용하여 컨테이너에서 보안 비밀을 사용합니다.
  • 환경 변수 또는 마운트된 볼륨을 사용하여 컨테이너에서 ConfigMap을 사용합니다.

실습 설정

Qwiklabs에 액세스하기

각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.

  1. 시크릿 창을 사용하여 Qwiklabs에 로그인합니다.

  2. 실습 사용 가능 시간(예: 1:15:00)을 참고하여 해당 시간 내에 완료합니다.
    일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.

  3. 준비가 되면 실습 시작을 클릭합니다.

  4. 실습 사용자 인증 정보(사용자 이름비밀번호)를 기록해 두세요. Google Cloud Console에 로그인합니다.

  5. Google Console 열기를 클릭합니다.

  6. 다른 계정 사용을 클릭한 다음, 안내 메시지에 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
    다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.

  7. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.

초기 로그인 단계를 완료하면 프로젝트 대시보드가 표시됩니다.

Google Cloud Shell 활성화하기

Google Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다.

Google Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.

  1. Cloud 콘솔의 오른쪽 상단 툴바에서 'Cloud Shell 열기' 버튼을 클릭합니다.

    강조 표시된 Cloud Shell 아이콘

  2. 계속을 클릭합니다.

환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 연결되면 사용자가 미리 인증되어 프로젝트가 PROJECT_ID로 설정됩니다. 예:

Cloud Shell 터미널에 강조 표시된 프로젝트 ID

gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.

  • 다음 명령어를 사용하여 사용 중인 계정 이름을 나열할 수 있습니다.
gcloud auth list

출력:

Credentialed accounts: - @.com (active)

출력 예시:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 다음 명령어를 사용하여 프로젝트 ID를 나열할 수 있습니다.
gcloud config list project

출력:

[core] project =

출력 예시:

[core] project = qwiklabs-gcp-44776a13dea667a6 참고: gcloud 전체 문서는 gcloud CLI 개요 가이드를 참조하세요.

작업 1. 보안 비밀로 작업하기

이 작업에서는 Google Cloud 서비스에 액세스하기 위해 Google Cloud로 컨테이너를 인증합니다. Cloud Pub/Sub 주제 및 구독을 설정하고, GKE에서 실행 중인 컨테이너에서 Cloud Pub/Sub 주제에 액세스하려고 시도하고, 액세스 요청이 실패하는지 확인합니다.

Pub/Sub 주제에 제대로 액세스하려면 사용자 인증 정보를 사용하여 서비스 계정을 만들고 Kubernetes 보안 비밀을 통해 해당 사용자 인증 정보를 전달합니다.

권한이 없는 서비스 계정 준비하기

  1. Google Cloud 콘솔의 탐색 메뉴(탐색 메뉴 아이콘)에서 IAM 및 관리자 > 서비스 계정을 클릭합니다.
  2. + 서비스 계정 만들기를 클릭합니다.
  3. 서비스 계정 이름 텍스트 상자에 no-permissions를 입력합니다.
  4. 만들고 계속하기를 클릭합니다.
  5. 계속을 클릭한 다음 완료를 클릭합니다.
  6. 목록에서 no-permissions 서비스 계정을 찾은 후 이 계정과 연결된 이메일 주소를 나중에 사용할 수 있도록 텍스트 파일에 복사합니다.

GKE 클러스터 만들기

이 클러스터를 만들 때는 이전에 만든 서비스 계정을 지정합니다. 해당 서비스 계정은 다른 Google Cloud 서비스에 대한 권한이 없어서 나중에 배포할 Cloud Pub/Sub 테스트 애플리케이션에 연결할 수 없기 때문에 적절한 권한이 있는 서비스 계정이 필요합니다. 이 문제는 나중에 실습에서 해결합니다.

  1. Cloud Shell에서 다음 명령어를 입력하여 이 실습을 위한 클러스터를 만들 때 사용하게 될 Google Cloud 영역 및 클러스터 이름의 환경 변수를 생성합니다.
export my_zone={{{ project_0.default_zone | ZONE }}} export my_cluster=standard-cluster-1
  1. kubectl 명령줄 도구의 명령줄 자동 완성 기능을 구성합니다.
source <(kubectl completion bash)
  1. Cloud Shell에서 다음 명령어를 입력하여 서비스 계정 이름의 환경 변수를 설정합니다. 여기서 [MY-SERVICE-ACCOUNT-EMAIL]은 이전에 만든 서비스 계정의 이메일 주소입니다.
export my_service_account=[MY-SERVICE-ACCOUNT-EMAIL]

예시:

export my_service_account=no-permissions@qwiklabs-gcp-4ee5983fdd675469.iam.gserviceaccount.com
  1. Cloud Shell에서 다음 명령어를 입력하여 Kubernetes 클러스터를 만듭니다.
gcloud container clusters create $my_cluster \ --num-nodes 2 --zone $my_zone \ --service-account=$my_service_account 참고: 클러스터 배포가 완료될 때까지 몇 분 정도 기다려야 합니다.
  1. 다음과 같이 kubectl의 클러스터에 대한 액세스 권한을 구성합니다.
gcloud container clusters get-credentials $my_cluster --zone $my_zone

Cloud Pub/Sub를 설정하고 주제에서 읽을 애플리케이션 배포하기

  1. Cloud Shell에서 다음 명령어를 입력하여 Pub/Sub 구성요소의 환경 변수를 설정합니다.
export my_pubsub_topic=echo export my_pubsub_subscription=echo-read
  1. echo라는 Cloud Pub/Sub 주제 및 해당 주제와 연결된 echo-read라는 구독을 만들려면 다음 gcloud 명령어를 실행합니다.
gcloud pubsub topics create $my_pubsub_topic gcloud pubsub subscriptions create $my_pubsub_subscription \ --topic=$my_pubsub_topic

Cloud Pub/Sub 주제에서 읽을 애플리케이션 배포하기

Cloud Pub/Sub 주제에서 읽을 수 있는 컨테이너로 배포를 만듭니다. Cloud Pub/Sub 주제를 구독하고 읽으려면 특정 권한이 필요하므로 Cloud Pub/Sub에 성공적으로 연결하기 위해서는 이 컨테이너에 사용자 인증 정보가 제공되어야 합니다.

pubsub.yaml이라는 배포 매니페스트 파일이 제공됩니다.

apiVersion: apps/v1 kind: Deployment metadata: name: pubsub spec: selector: matchLabels: app: pubsub template: metadata: labels: app: pubsub spec: containers: - name: subscriber image: gcr.io/google-samples/pubsub-sample:v1
  1. Cloud Shell에서 다음 명령어를 입력하여 실습 Cloud Shell에 저장소를 클론합니다.
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. 작업 디렉터리로 연결되는 바로가기, 즉 소프트 링크를 생성합니다.
ln -s ~/training-data-analyst/courses/ak8s/v1.1 ~/ak8s
  1. 이 실습의 샘플 파일이 포함된 디렉터리로 이동합니다.
cd ~/ak8s/Secrets/
  1. 애플리케이션을 배포합니다.
kubectl apply -f pubsub.yaml
  1. 애플리케이션이 배포된 후 다음 명령어를 실행하여 포드를 쿼리합니다.
kubectl get pods -l app=pubsub

이 명령어는 app:pubsub와 라벨이 일치하는 포드만 나열하는 포드 목록을 필터링합니다.

출력:

NAME READY STATUS RESTARTS AGE pubsub-74d4d96ddb-lqkt8 0/1 CrashLoopBackOff 0 6s 참고: 1분 정도 기다려야 합니다. 애플리케이션은 시작 중이지만 실패하게 됩니다.
  1. 포드를 다시 나열합니다.
kubectl get pods -l app=pubsub

출력:

NAME READY STATUS RESTARTS AGE pubsub-74d4d96ddb-lqkt8 0/1 Error 4 2m

포드의 상태에 주목하세요. 오류가 발생했으며 여러 번 다시 시작되었습니다.

  1. 포드의 로그를 검사하려면 다음 명령어를 실행합니다.
kubectl logs -l app=pubsub

로그 끝에 표시된 오류 메시지는 애플리케이션에 Cloud Pub/Sub 서비스를 쿼리할 권한이 없음을 나타냅니다.

StatusCode.PERMISSION_DENIED, User not authorized to perform this action.

서비스 계정 사용자 인증 정보 만들기

이제 새 서비스 계정을 만들고, 테스트 애플리케이션이 사용하려고 하는 Pub/Sub 구독에 대한 액세스 권한을 해당 계정에 부여합니다. GKE 클러스터 노드의 서비스 계정을 변경하는 대신, 서비스 계정에 대한 JSON 키를 생성한 후 Kubernetes 보안 비밀을 통해 JSON 키를 포드에 안전하게 전달합니다.

  1. Google Cloud 콘솔의 탐색 메뉴에서 IAM 및 관리자 > 서비스 계정을 클릭합니다.
  2. + 서비스 계정 만들기를 클릭합니다.
  3. 서비스 계정 이름 텍스트 상자에 pubsub-app을 입력한 후 만들고 계속하기를 클릭합니다.
  4. 역할 선택 드롭다운 목록에서 Pub/Sub > Pub/Sub 구독자를 선택합니다.
  5. 역할이 나열된 것을 확인하고 계속을 클릭한 후 완료를 클릭합니다.
  6. 서비스 계정 개요 화면에서 pubsub-app 서비스 계정의 오른쪽에 있는 점 3개를 클릭한 후 키 관리를 선택합니다.
  7. 드롭다운에서 키 추가를 클릭한 다음 새 키 만들기를 선택합니다.
  8. 키 유형으로 JSON을 선택하고 만들기를 클릭합니다.
  9. 서비스 계정의 사용자 인증 정보가 포함된 JSON 키 파일이 컴퓨터에 다운로드됩니다. 파일은 화면 하단의 다운로드바에서 확인할 수 있습니다. 이 키 파일은 Cloud Pub/Sub API에 인증하기 위해 샘플 애플리케이션을 구성하는 데 사용합니다.
  10. 닫기를 클릭합니다.
  11. 하드 드라이브에서 방금 다운로드한 JSON 키를 찾아 파일 이름을 credentials.json으로 바꿉니다.

보안 비밀로 사용자 인증 정보 가져오기

  1. Cloud Shell에서 Cloud Shell 툴바에 있는 점 3개(더보기 아이콘)를 클릭하여 추가 옵션을 표시합니다.

Cloud Shell 툴바에 강조 표시된 더보기 아이콘

  1. 업로드를 클릭하여 로컬 머신의 credentials.json 파일을 Cloud Shell VM에 업로드하고 업로드를 클릭합니다.
  2. Cloud Shell에서 다음 명령어를 입력하여 파일이 업로드되었는지 확인합니다.
ls ~/

이전에 클론한 실습 파일 디렉터리와 함께 업로드된 사용자 인증 정보 파일이 표시됩니다.

  1. credentials.json 키 파일을 pubsub-key라는 Kubernetes 보안 비밀에 저장하기 위해 다음 명령어를 실행합니다.
kubectl create secret generic pubsub-key \ --from-file=key.json=$HOME/credentials.json

이 명령어는 pubsub-key라는 보안 비밀을 만들며, 여기에 포함된 key.json 값에는 Google Cloud 콘솔에서 다운로드한 비공개 키의 콘텐츠가 있습니다.

  1. 컴퓨터에서 credentials.json 파일을 삭제합니다.
rm -rf ~/credentials.json

보안 비밀로 애플리케이션 구성하기

이제 다음 변경사항을 포함하도록 배포를 업데이트합니다.

  • 포드 사양에 볼륨을 추가합니다. 이 볼륨에는 보안 비밀이 포함되어 있습니다.
  • 보안 비밀 볼륨은 애플리케이션 컨테이너에 마운트됩니다
  • GOOGLE_APPLICATION_CREDENTIALS 환경 변수는 보안 비밀 볼륨 마운트에 있는 키 파일을 가리키도록 설정됩니다.

GOOGLE_APPLICATION_CREDENTIALS 환경 변수는 Cloud 클라이언트 라이브러리(이 경우 Python용 Cloud Pub/Sub 클라이언트)에 의해 자동으로 인식됩니다.

pubsub-secret.yaml이라는 업데이트된 배포 파일이 제공되었습니다.

apiVersion: apps/v1 kind: Deployment metadata: name: pubsub spec: selector: matchLabels: app: pubsub template: metadata: labels: app: pubsub spec: volumes: - name: google-cloud-key secret: secretName: pubsub-key containers: - name: subscriber image: gcr.io/google-samples/pubsub-sample:v1 volumeMounts: - name: google-cloud-key mountPath: /var/secrets/google env: - name: GOOGLE_APPLICATION_CREDENTIALS value: /var/secrets/google/key.json
  1. pubsub-secret.yaml 구성 파일을 배포합니다.
kubectl apply -f pubsub-secret.yaml
  1. 구성이 배포된 후 다음 명령어를 실행하여 포드 상태를 표시합니다.
kubectl get pods -l app=pubsub

포드 상태는 실행 중으로 표시됩니다. 상태 변경이 표시되는 데는 몇 초 정도 걸릴 수 있습니다.

출력:

NAME READY STATUS RESTARTS AGE pubsub-c4f48b868-xk27w 1/1 Running 0 35s

Cloud Pub/Sub 메시지 수신 테스트하기

  1. 애플리케이션을 구성했으니 이제 실습의 앞부분에서 만든 Cloud Pub/Sub 주제에 메시지를 게시합니다.
gcloud pubsub topics publish $my_pubsub_topic --message="Hello, world!"

출력(메시지 ID는 다름):

messageIds: - '328977244395410'

몇 초 이내에 메시지가 애플리케이션에 의해 선택되고 출력 스트림에 출력됩니다.

  1. 배포된 포드의 로그를 검사하려면 다음 명령어를 실행합니다.
kubectl logs -l app=pubsub

출력은 다음 예시와 같이 표시됩니다.

출력:

Pulling messages from Pub/Sub subscription... [2018-12-17 22:01:06.860378] Received message: ID=328977244395410 Data=b'Hello, world!' [2018-12-17 22:01:06.860736] Processing: 328977244395410 [2018-12-17 22:01:09.863973] Processed: 328977244395410

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.

보안 비밀로 작업하기

작업 2. ConfigMap으로 작업하기

ConfigMap은 런타임에 구성 파일, 명령줄 인수, 환경 변수, 포트 번호, 기타 구성 아티팩트를 포드의 컨테이너 및 시스템 구성요소에 결합합니다.

ConfigMap을 사용하면 포드 및 구성요소와 구성을 구분할 수 있습니다. 그러나 ConfigMap은 암호화되어 있지 않으므로 사용자 인증 정보에 적합하지 않습니다. 이것이 바로 보안 비밀과 ConfigMap의 차이점입니다. 보안 비밀은 암호화되어 있으므로 사용자 인증 정보와 같은 기밀 또는 민감한 정보에 더 적합합니다.

ConfigMap은 포트 번호와 같은 일반 구성 정보에 더 적합합니다.

kubectl 명령어를 사용하여 ConfigMap 만들기

kubectl create configmap [NAME] [DATA] 패턴을 따르고 파일(--from-file) 또는 리터럴(--from-literal)에 대해 플래그를 추가함으로써 kubectl을 사용하여 ConfigMap을 만듭니다.

  1. 다음 kubectl 명령어에서 간단한 리터럴로 시작합니다.
kubectl create configmap sample --from-literal=message=hello
  1. Kubernetes가 ConfigMap을 수집한 방법을 확인하려면 다음 명령어를 실행합니다.
kubectl describe configmaps sample

출력은 다음 예시와 같이 표시됩니다.

출력:

Name: sample Namespace: default Labels: <none> Annotations: <none> Data ==== message: ---- hello Events: <none>

다음으로, 파일에서 ConfigMap을 만듭니다. 몇 가지 샘플 데이터가 포함된 sample2.properties 파일이 제공됩니다.

message2=world foo=bar meaningOfLife=42
  1. sample2.properties에서 ConfigMap을 만들기 위해 다음 명령어를 실행합니다.
kubectl create configmap sample2 --from-file=sample2.properties
  1. Kubernetes가 ConfigMap을 수집한 방법을 확인하려면 다음 명령어를 실행합니다.
kubectl describe configmaps sample2

출력은 다음 예시와 같이 표시됩니다.

출력:

Name: sample2 Namespace: default Labels: <none> Annotations: <none> Data ==== sample2.properties: ---- message2=world foo=bar meaningOfLife=42 Events: <none>

매니페스트 파일을 사용하여 ConfigMap 만들기

YAML 구성 파일을 사용하여 ConfigMap을 만들 수도 있습니다. config-map-3.yaml 파일에는 sample3이라는 ConfigMap 정의가 포함되어 있습니다. 이 ConfigMap은 나중에 컨테이너 내부의 데이터를 노출하는 두 가지 방법을 보여주는 데 사용합니다.

apiVersion: v1 data: airspeed: africanOrEuropean meme: testAllTheThings kind: ConfigMap metadata: name: sample3 namespace: default selfLink: /api/v1/namespaces/default/configmaps/sample3
  1. YAML 파일에서 ConfigMap을 만듭니다.
kubectl apply -f config-map-3.yaml
  1. Kubernetes가 ConfigMap을 수집한 방법을 확인하려면 다음 명령어를 실행합니다.
kubectl describe configmaps sample3

출력은 다음 예시와 같이 표시됩니다.

출력:

Name: sample3 Namespace: default Labels: <none> Annotations: <none> Data ==== airspeed: ---- africanOrEuropean meme: ---- testAllTheThings Events: <none>

이제 애플리케이션과 적절히 분리되고, 보안 비밀이 아니며, 암호화되지 않은 구성 정보 몇 가지를 클러스터에 사용할 수 있습니다. 여기서는 다양한 옵션을 보여주기 위해 세 가지 방법으로 ConfigMap을 사용하여 이 작업을 수행했습니다. 그러나 실제로는 보통 하나의 메서드, 대부분의 경우 YAML 구성 파일을 선택합니다. 구성 파일은 나중에 프로세스를 쉽게 반복할 수 있도록 저장한 값의 기록을 제공합니다.

다음으로, 애플리케이션 내에서 이 정보에 액세스하는 방법을 알아보겠습니다.

환경 변수를 사용하여 컨테이너에서 ConfigMap 사용하기

환경 변수를 사용하여 컨테이너 내부에서 ConfigMap에 액세스하려면 하나 이상의 configMapKeyRef를 포함하도록 포드 정의를 업데이트해야 합니다.

pubsub-configmap.yaml 파일은 ConfigMap에서 컨테이너로 환경 변수를 가져오기 위해 파일 끝에 다음과 같은 추가 env: 설정을 포함하는 Cloud Pub/Sub 데모 배포의 업데이트된 버전입니다.

- name: INSIGHTS valueFrom: configMapKeyRef: name: sample3 key: meme
  1. 업데이트된 구성 파일을 다시 적용하기 위해 다음 명령어를 실행합니다.
kubectl apply -f pubsub-configmap.yaml

이제 애플리케이션은 testAllTheThings 값을 가진 INSIGHTS라는 환경 변수에 액세스할 수 있습니다.

  1. 환경 변수의 값이 올바른지 확인하려면 포드에 대한 셸 액세스 권한을 얻어야 합니다. 즉, 포드의 이름이 필요합니다. 포드의 이름을 가져오려면 다음 명령어를 실행합니다.
kubectl get pods

출력은 다음 예시와 같이 표시됩니다.

출력:

NAME READY STATUS RESTARTS AGE pubsub-77df8f8c6-krfl2 1/1 Running 0 4m
  1. 셸 세션을 시작하려면 [MY-POD-NAME]을 포드의 이름으로 대체하여 다음 명령어를 실행합니다.
kubectl exec -it [MY-POD-NAME] -- sh

예시:

kubectl exec -it pubsub-77df8f8c6-krfl2 -- sh
  1. 환경 변수의 목록을 출력하기 위해 다음 명령어를 실행합니다.
printenv

INSIGHTS=testAllTheThings가 목록에 표시됩니다.

  1. 컨테이너의 셸 세션을 종료하려면 다음 명령어를 실행합니다.
exit

마운트된 볼륨을 사용하여 컨테이너에서 ConfigMap 사용하기

볼륨은 환경 변수에 저장하는 대신(또는 환경 변수에 저장하고) ConfigMap 데이터로 채울 수 있습니다.

이 배포에서는 이 작업의 앞부분에서 만든 sample-3이라는 ConfigMap도 포드 사양에 config-3이라는 볼륨으로 추가됩니다. 그런 다음, config-3 볼륨은 /etc/config 경로의 컨테이너 내부에 마운트됩니다. 환경 변수를 사용하여 ConfigMap을 가져오는 원래의 메서드도 구성됩니다.

pubsub-configmap2.yaml이라는 업데이트된 배포 파일이 제공되었습니다.

apiVersion: apps/v1 kind: Deployment metadata: name: pubsub spec: selector: matchLabels: app: pubsub template: metadata: labels: app: pubsub spec: volumes: - name: google-cloud-key secret: secretName: pubsub-key - name: config-3 configMap: name: sample3 containers: - name: subscriber image: gcr.io/google-samples/pubsub-sample:v1 volumeMounts: - name: google-cloud-key mountPath: /var/secrets/google - name: config-3 mountPath: /etc/config env: - name: GOOGLE_APPLICATION_CREDENTIALS value: /var/secrets/google/key.json - name: INSIGHTS valueFrom: configMapKeyRef: name: sample3 key: meme
  1. 업데이트된 구성 파일을 다시 적용합니다.
kubectl apply -f pubsub-configmap2.yaml
  1. 컨테이너의 셸 세션에 다시 연결하여 ConfigMap의 값에 액세스할 수 있는지 확인합니다. 포드 이름은 변경됩니다. 포드의 이름을 가져오려면 다음 명령어를 실행합니다.
kubectl get pods

출력은 다음 예시와 같이 표시됩니다.

출력:

NAME READY STATUS RESTARTS AGE pubsub-747cf8c545-ngsrf 1/1 Running 0 30s pubsub-df6bc7b87-vb8cz 1/1 Terminating 0 4m
  1. 셸 세션을 시작하려면 [MY-POD-NAME]을 포드의 이름으로 대체하여 다음 명령어를 실행합니다.
kubectl exec -it [MY-POD-NAME] -- sh

예시:

kubectl exec -it pubsub-747cf8c545-ngsrf -- sh
  1. 적절한 폴더로 이동합니다.
cd /etc/config
  1. 폴더의 파일을 나열합니다.

파일 이름이 sample3의 키로 나열됩니다.

ls

출력:

airspeed meme
  1. 파일 중 하나의 콘텐츠를 보려면 다음 명령어를 실행합니다.
cat airspeed

출력:

africanOrEuropean# 참고: airspeed의 값에는 캐리지 리턴이 포함되지 않았으므로 명령 프롬프트(\# 기호)는 반환된 값의 끝에 있습니다.
  1. 컨테이너의 셸을 종료하기 위해 다음 명령어를 실행합니다.
exit

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.

ConfigMap으로 작업하기

실습 종료하기

실습을 완료하면 실습 종료를 클릭합니다. Google Cloud Skills Boost에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.

실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.

별점의 의미는 다음과 같습니다.

  • 별표 1개 = 매우 불만족
  • 별표 2개 = 불만족
  • 별표 3개 = 중간
  • 별표 4개 = 만족
  • 별표 5개 = 매우 만족

의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.

의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.

Copyright 2020 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.