2.3. CLI 프로필 관리
CLI 구성 파일을 사용하면 CLI 툴 개요 에서 사용할 수 있도록 다른 프로필 또는 컨텍스트를 구성할 수 있습니다. 컨텍스트는 사용자 인증 및 닉네임 과 관련된 OpenShift Container Platform 서버 정보로 구성됩니다.
2.3.1. CLI 프로필 간 스위치 정보
컨텍스트를 사용하면 CLI 작업을 사용하는 경우 여러 OpenShift Container Platform 서버 또는 클러스터에서 여러 사용자 간에 쉽게 전환할 수 있습니다. nicknames를 사용하면 컨텍스트, 사용자 인증 정보 및 클러스터 세부 정보에 대한 간단한 참조를 제공하여 CLI 구성을 더 쉽게 관리할 수 있습니다. 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
- cluster
섹션에서는
마스터 서버의 주소를 포함하여 OpenShift Container Platform 클러스터에 대한 연결 세부 정보를 정의합니다. 이 예에서 한 클러스터는 닉네임openshift1.example.com:8443
이며 다른 클러스터는 닉네임openshift2.example.com:8443
입니다. - 2
- 이
컨텍스트
섹션은alice-project/openshift1.example.com:8443/alice
닉네임의 두 가지 컨텍스트를 정의합니다.alice-project
프로젝트,openshift1.example.com:8443
클러스터 및alice
사용자, 다른 nicknamedjoe-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.3.2. CLI 프로필의 수동 구성
이 섹션에서는 CLI 구성의 고급 사용에 대해 설명합니다. 대부분의 경우 oc login
및 oc project
명령을 사용하여 컨텍스트와 프로젝트 간에 로그인하고 전환할 수 있습니다.
CLI 구성 파일을 수동으로 구성하려면 파일을 직접 수정하는 대신 oc config
명령을 사용할 수 있습니다. oc config
명령에는 이러한 목적으로 여러 유용한 하위 명령이 포함되어 있습니다.
하위 명령 | 사용법 |
---|---|
| 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>] |
| 지정된 컨텍스트 nickname을 사용하여 현재 컨텍스트를 설정합니다. $ 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.3.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
-
- 여전히 누락된 모든 정보의 경우 기본값이 사용되며 추가 정보에 대한 프롬프트가 제공됩니다.