2.4. CLI 프로필 관리


CLI 구성 파일을 사용하면 CLI 툴 개요 와 함께 사용할 수 있도록 다양한 프로필 또는 컨텍스트를 구성할 수 있습니다. 컨텍스트는 닉네임 과 연결된 OpenShift Container Platform 서버 정보로 구성됩니다.

2.4.1. CLI 프로필 간 전환 정보

컨텍스트를 사용하면 CLI 작업을 사용할 때 여러 OpenShift Container Platform 서버 또는 클러스터에서 여러 사용자 간에 쉽게 전환할 수 있습니다. 닉네임을 사용하면 컨텍스트, 사용자 자격 증명 및 클러스터 세부 정보에 대한 간단한 참조를 제공하여 CLI 구성을 보다 쉽게 관리할 수 있습니다. 사용자가 oc CLI로 처음 로그인한 후 OpenShift Container Platform은 아직 존재하지 않는 경우 ~/.kube/config 파일을 생성합니다. oc login 작업 중에 자동으로 또는 CLI 프로필을 수동으로 구성하여 CLI에 인증 및 연결 세부 정보가 제공되면 업데이트된 정보는 구성 파일에 저장됩니다.

CLI 구성 파일

apiVersion: v1
clusters: 1
- cluster:
    insecure-skip-tls-verify: true
    server: https://openshift1.example.com:8443
  name: openshift1.example.com:8443
- cluster:
    insecure-skip-tls-verify: true
    server: https://openshift2.example.com:8443
  name: openshift2.example.com:8443
contexts: 2
- context:
    cluster: openshift1.example.com:8443
    namespace: alice-project
    user: alice/openshift1.example.com:8443
  name: alice-project/openshift1.example.com:8443/alice
- context:
    cluster: openshift1.example.com:8443
    namespace: joe-project
    user: alice/openshift1.example.com:8443
  name: joe-project/openshift1/alice
current-context: joe-project/openshift1.example.com:8443/alice 3
kind: Config
preferences: {}
users: 4
- name: alice/openshift1.example.com:8443
  user:
    token: xZHd2piv5_9vQrg-SKXRJ2Dsl9SceNJdhNTljEKTb8k

1
clusters 섹션에서는 마스터 서버의 주소를 포함하여 OpenShift Container Platform 클러스터에 대한 연결 세부 정보를 정의합니다. 이 예에서 한 클러스터는 닉네임이 openshift1.example.com:8443 이고 다른 클러스터는 닉네임이 openshift2.example.com:8443 입니다.
2
contexts 섹션은 두 개의 컨텍스트를 정의합니다. 하나는 alice-project 프로젝트, openshift1.example.com:8443 클러스터 및 alice 사용자를 사용하여 별명이 alice-project/openshift1.example.com:8443/alice이고, 다른 하나는 joe-project 프로젝트, openshift1.example.com:8443 클러스터 및 alice 사용자를 사용하여 별명이 joe-project/openshift1.example.com:8443/alice 입니다.
3
current-context 매개변수는 joe-project/openshift1.example.com:8443/alice 컨텍스트가 현재 사용 중임을 표시하므로 alice 사용자가 openshift1.example.com:8443 클러스터의 joe-project 프로젝트에서 작업할 수 있습니다.
4
users 섹션에서는 사용자 자격 증명을 정의합니다. 이 예에서 사용자 nickname alice/openshift1.example.com:8443 은 액세스 토큰을 사용합니다.

CLI는 런타임 시 로드되고 명령줄에서 지정된 재정의 옵션과 함께 병합되는 여러 구성 파일을 지원할 수 있습니다. 로그인한 후 oc status 또는 oc project 명령을 사용하여 현재 작업 환경을 확인할 수 있습니다.

현재 작업 환경 확인

$ oc status

출력 예

oc status
In project Joe's Project (joe-project)

service database (172.30.43.12:5434 -> 3306)
  database deploys docker.io/openshift/mysql-55-centos7:latest
    #1 deployed 25 minutes ago - 1 pod

service frontend (172.30.159.137:5432 -> 8080)
  frontend deploys origin-ruby-sample:latest <-
    builds https://github.com/openshift/ruby-hello-world with joe-project/ruby-20-centos7:latest
    #1 deployed 22 minutes ago - 2 pods

To see more information about a service or deployment, use 'oc describe service <name>' or 'oc describe dc <name>'.
You can use 'oc get all' to see lists of each of the types described in this example.

현재 프로젝트를 나열합니다.

$ oc project

출력 예

Using project "joe-project" from context named "joe-project/openshift1.example.com:8443/alice" on server "https://openshift1.example.com:8443".

oc login 명령을 다시 실행하고 대화형 프로세스 중에 필요한 정보를 제공하여 사용자 인증 정보 및 클러스터 세부 정보를 다른 조합으로 로그인할 수 있습니다. 컨텍스트는 아직 존재하지 않는 경우 제공된 정보를 기반으로 구성됩니다. 이미 로그인한 후 현재 사용자가 이미 액세스할 수 있는 다른 프로젝트로 전환하려면 oc project 명령을 사용하여 프로젝트 이름을 입력합니다.

$ oc project alice-project

출력 예

Now using project "alice-project" on server "https://openshift1.example.com:8443".

언제든지 oc config view 명령을 사용하여 출력에 표시된 대로 현재 CLI 구성을 볼 수 있습니다. 고급 사용을 위해 추가 CLI 구성 명령도 사용할 수 있습니다.

참고

관리자 자격 증명에 액세스할 수 있지만 기본 시스템 사용자 system:admin 으로 더 이상 로그인하지 않은 경우 CLI 구성 파일에 인증 정보가 계속 존재하는 한 언제든지 이 사용자로 다시 로그인할 수 있습니다. 다음 명령은 로그인하고 기본 프로젝트로 전환합니다.

$ oc login -u system:admin -n default

2.4.2. CLI 프로필 수동 구성

참고

이 섹션에서는 CLI 구성의 고급 사용에 대해 설명합니다. 대부분의 경우 oc loginoc project 명령을 사용하여 로그인하고 컨텍스트와 프로젝트 간에 전환할 수 있습니다.

CLI 구성 파일을 수동으로 구성하려면 파일을 직접 수정하는 대신 oc config 명령을 사용할 수 있습니다. oc config 명령에는 다음과 같은 목적으로 여러 유용한 하위 명령이 포함되어 있습니다.

표 2.2. CLI 구성 하위 명령
하위 명령사용법

set-cluster

CLI 구성 파일에 클러스터 항목을 설정합니다. 참조된 클러스터 닉네임이 이미 존재하는 경우 지정된 정보가 병합됩니다.

$ oc config set-cluster <cluster_nickname> [--server=<master_ip_or_fqdn>]
[--certificate-authority=<path/to/certificate/authority>]
[--api-version=<apiversion>] [--insecure-skip-tls-verify=true]

set-context

CLI 구성 파일에서 컨텍스트 항목을 설정합니다. 참조된 컨텍스트 닉네임이 이미 존재하는 경우 지정된 정보가 병합됩니다.

$ oc config set-context <context_nickname> [--cluster=<cluster_nickname>]
[--user=<user_nickname>] [--namespace=<namespace>]

use-context

지정된 컨텍스트 닉네임을 사용하여 현재 컨텍스트를 설정합니다.

$ oc config use-context <context_nickname>

set

CLI 구성 파일에서 개별 값을 설정합니다.

$ oc config set <property_name> <property_value>

<property_name>은 각 토큰이 특성 이름 또는 맵 키를 나타내는 점으로 구분된 이름입니다. <property_value>는 설정되는 새 값입니다.

unset

CLI 구성 파일에서 개별 값을 설정 해제합니다.

$ oc config unset <property_name>

<property_name>은 각 토큰이 특성 이름 또는 맵 키를 나타내는 점으로 구분된 이름입니다.

view

현재 사용 중인 병합된 CLI 구성을 표시합니다.

$ oc config view

지정된 CLI 구성 파일의 결과를 표시합니다.

$ oc config view --config=<specific_filename>

사용 예

  • 액세스 토큰을 사용하는 사용자로 로그인합니다. 이 토큰은 alice 사용자가 사용합니다.
$ oc login https://openshift1.example.com --token=ns7yVhuRNpDM9cgzfhhxQ7bM5s7N2ZVrkZepSRf4LC0
  • 생성된 클러스터 항목을 자동으로 확인합니다.
$ oc config view

출력 예

apiVersion: v1
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: https://openshift1.example.com
  name: openshift1-example-com
contexts:
- context:
    cluster: openshift1-example-com
    namespace: default
    user: alice/openshift1-example-com
  name: default/openshift1-example-com/alice
current-context: default/openshift1-example-com/alice
kind: Config
preferences: {}
users:
- name: alice/openshift1.example.com
  user:
    token: ns7yVhuRNpDM9cgzfhhxQ7bM5s7N2ZVrkZepSRf4LC0

  • 사용자가 원하는 네임스페이스에 로그인하도록 현재 컨텍스트를 업데이트합니다.
$ oc config set-context `oc config current-context` --namespace=<project_name>
  • 현재 컨텍스트를 검사하여 변경 사항이 구현되었는지 확인합니다.
$ oc whoami -c

이후의 모든 CLI 작업에서는 CLI 옵션을 덮어쓰거나 컨텍스트가 전환될 때까지 달리 지정하지 않는 한 새 컨텍스트를 사용합니다.

2.4.3. 로드 및 병합 규칙

CLI 구성의 로드 및 병합 순서를 위한 CLI 작업을 실행할 때 다음 규칙을 따를 수 있습니다.

  • CLI 구성 파일은 다음 계층 및 병합 규칙을 사용하여 워크스테이션에서 검색됩니다.

    • --config 옵션이 설정된 경우 해당 파일만 로드됩니다. 플래그는 한 번만 설정되며 병합이 발생하지 않습니다.
    • $KUBECONFIG 환경 변수가 설정된 경우 사용됩니다. 변수는 경로 목록일 수 있으므로 경로가 병합될 수 있습니다. 값이 수정되면 스탠자를 정의하는 파일에서 수정됩니다. 값이 생성되면 첫 번째 파일이 존재하는 파일에 생성됩니다. 체인에 있는 파일이 없으면 목록에 마지막 파일이 생성됩니다.
    • 그렇지 않으면 ~/.kube/config 파일이 사용되고 병합이 수행되지 않습니다.
  • 사용할 컨텍스트는 다음 흐름의 첫 번째 일치 항목에 따라 결정됩니다.

    • --context 옵션의 값입니다.
    • CLI 구성 파일의 current-context 값입니다.
    • 이 단계에서 빈 값이 허용됩니다.
  • 사용할 사용자 및 클러스터가 결정됩니다. 이 시점에서 컨텍스트가 있거나 없을 수 있습니다. 이러한 컨텍스트는 사용자 및 클러스터에 대해 한 번 실행되는 다음 흐름의 첫 번째 일치 항목에 따라 빌드됩니다.

    • 사용자 이름용 --user 및 클러스터 이름에 대한 --cluster 옵션의 값입니다.
    • --context 옵션이 있는 경우 컨텍스트의 값을 사용합니다.
    • 이 단계에서 빈 값이 허용됩니다.
  • 사용할 실제 클러스터 정보가 결정됩니다. 이 시점에서 클러스터 정보가 있거나 없을 수 있습니다. 클러스터 정보의 각 조각은 다음 흐름의 첫 번째 일치 항목을 기반으로 빌드됩니다.

    • 다음 명령줄 옵션의 값:

      • --server,
      • --api-version
      • --certificate-authority
      • --insecure-skip-tls-verify
    • 클러스터 정보와 속성 값이 있는 경우 해당 정보를 사용합니다.
    • 서버 위치가 없는 경우 오류가 발생합니다.
  • 실제 사용할 사용자 정보가 결정됩니다. 사용자는 사용자당 하나의 인증 기술만 가질 수 있다는 점을 제외하고 클러스터와 동일한 규칙을 사용하여 빌드됩니다. 충돌하는 기술로 인해 작업이 실패합니다. 명령줄 옵션은 구성 파일 값보다 우선합니다. 유효한 명령행 옵션은 다음과 같습니다.

    • --auth-path
    • --client-certificate
    • --client-key
    • --token
  • 아직 누락된 정보에 대해 기본값이 사용되고 추가 정보에 대한 프롬프트가 제공됩니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.