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섹션에서는 사용자 자격 증명을 정의합니다. 이 예에서 사용자 nicknamealice/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 login 및 oc project 명령을 사용하여 로그인하고 컨텍스트와 프로젝트 간에 전환할 수 있습니다.
CLI 구성 파일을 수동으로 구성하려면 파일을 직접 수정하는 대신 oc config 명령을 사용할 수 있습니다. oc config 명령에는 다음과 같은 목적으로 여러 유용한 하위 명령이 포함되어 있습니다.
표 2.2. CLI 구성 하위 명령
| 하위 명령 | 사용법 |
|---|---|
|
| 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] |
|
| CLI 구성 파일에서 컨텍스트 항목을 설정합니다. 참조된 컨텍스트 닉네임이 이미 존재하는 경우 지정된 정보가 병합됩니다. $ oc config set-context <context_nickname> [--cluster=<cluster_nickname>] [--user=<user_nickname>] [--namespace=<namespace>] |
|
| 지정된 컨텍스트 닉네임을 사용하여 현재 컨텍스트를 설정합니다. $ oc config use-context <context_nickname> |
|
| CLI 구성 파일에서 개별 값을 설정합니다. $ oc config set <property_name> <property_value>
|
|
| CLI 구성 파일에서 개별 값을 설정 해제합니다. $ oc config unset <property_name>
|
|
| 현재 사용 중인 병합된 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
-
- 아직 누락된 정보에 대해 기본값이 사용되고 추가 정보에 대한 프롬프트가 제공됩니다.