본문 바로가기

Cloud/Oracle Cloud Infrastructure

OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 3. OCI 쿠버네티스 배포, 사용 환경 설정

OCI Container Engine for Kubernetes(OKE) 이용하여 쿠버네티스 클러스터를 생성 관리하기 위해서는 먼저 관련 OCI 자원을 사용할 있는 권한이 필요하다. 이를 위해 OCI 사용자는 해당 Tenancy Administrator 그룹 소속이거나, 또는 클러스터, 인스턴스, VCN등을 읽거나 사용, 또는 관리할 있는 권한 부여가 필요하다. 클러스터 생성을 위해 부여할 개별 권한은 아래 페이지을 참조한다.

Policy Configuration for Cluster Creation and Deployment

여기서는 Administrator 그룹 유저로 테스트를 진행했으므로, 별도 그룹 생성 권한 부여 작업을 하지는 않았다.

그리고 2020 3 12 이전에는 OCI 자원을 제어하기 위해 “Allow service OKE to manage all-resources in tenancy” 정책을 생성해서 OKE서비스에게 부여해야 했던 권한이 필요했었는데, 현재는 자동으로 생성되어 있으므로 별도로 해당 정책을 만들 필요가 없다.

여기서는 이후 Wercker OKE, OCIR 연동이 필요하기 때문에 OKE 클러스터를 Ashburn Region 생성한다.

Developer Services > Kubernetes Clusters 화면으로 이동하여 “Create Cluster” 클릭한다. 클러스터를 생성할 Compartment 선택를 확인한다.

 

OKE 클러스터는 미리 정의한 VCN 맞춰 생성할 있는 “Custom Create” 옵션으로 생성할  수도 있고, “Quick Create” 옵션으로 OKE 클러스터에 필요한 VCN 자원들을 자동으로 함께 생성할 수도 있다. 여기서는 “Quick Create” 옵션을 선택했다.

 

OKE 클러스터 워커 노드(Worker Node) “Choose Visibility Type”에서 퍼블릭 또는 프라이빗 서브넷에 위치시킬 있다. 여기서는 프라이빗으로 생성했다. Shape VM.Standard.E2.1 노드 수는 3으로 하였다. 그리고 트러블슈팅 상황을 대비하여 워커 노드에 SSH 접속을 위해 “Show Advanced Options” 클릭하여 SSH public key 입력했다. 입력 , 하단의 “Next” 클릭한다.

 

앞서 설정한 내용 확인하고, 하단의 “Create Cluster” 클릭한다.

 

OKE 클러스터의 네트웍 자원이 생성되었다는 메세지를 확인하고, 팝업창 하단의 “Close” 클릭한다.

 

OKE 클러스터 생성 진행 상태를 확인한다.

 

클러스터 생성이 완료되면 진행 상태가 “CREATING”에서 “ACTIVE” 변경된다.

 

클러스터가 생성되면

로드밸런서가 위치할 퍼블릭 서브넷 (10.0.10.0/24), 세개의 워커 노드가 위치할 프라이빗 서브넷(10.0.20.0/24) 생성되어 있고, 서브넷은 자신의 라우트 테이블, 시큐리티 리스트를 갖는 것을 있다. 퍼블릭용 라우트 테이블에는 인터넷 게이트웨이가, 프라이빗용 라우트 테이블에는 NAT 게이트웨이가 연결되어 있다.

생성된 클러스터에 kubectl 이용해서 접근하기 위해서는 먼저 쿠버네티스 설정 파일 “kubeconfig” 설정해야 한다. kubeconfig 파일은 클러스터에 접근하기 위해 필요한 상세 정보를 제공하는 역할을 한다.

kubeconfig 파일을 설정하는 방법은 OCI 콘솔의 Cloud Shell에서 OCI CLI 명령으로 하거나, 별도 호스트에 kubectl 설치하여 클러스터에 접근하도록 하는 방법이 있다. 여기에서는 후자의 방법으로 구성한다. Cloud Shell 이용하는 방식은 아래 페이지를 참조한다.

Setting Up Cloud Shell Access to Clusters

이번 테스트에서는 kubectl 호스트를 별도로 만들었으며, 클러스터 생성  만들어진 VCN 활용하여 아래와 같이 별도 kubectl 호스트용 서브넷과 라우트 테이블, 시큐리티 리스트로 추가하여 구성을 했다.

- 라우트 테이블: “rt-public”, 클러스터 생성  만들어진 인터넷 게이트웨이를 사용하여 아래와 같이 규칙 추가

 

- 시큐리티 리스트: “sl-public”, Ingress 규칙은 Destination 0.0.0.0/0으로 하여 TCP 22 포트,

Ingress

Egress

 

- 서브넷: “sn-public”, 10.0.30.0/24, 퍼블릭 서브넷 (Regional), 디폴트 DHCP 옵션, 앞서 만든 라우트 테이블  시큐리티 리스트와 연결

 

- VM인스턴스: “inst-public”, Oracle-Linux-7.9, “sn-public” 사용. Shape VM.Standard.E3.Flex 2 OCPU, 36 GB Memory 생성

 

kubectl 호스트가 준비가 되면 kubeconfig 파일을 설정한다.  전에 OCI CLI 설치  구성을 한다.

OCI Container Engine for Kubernetes 관리는 쿠버네트스 대쉬보드 또는 명령어  “kubectl” 통해 수행할  있다.   kubectl  통해 OCI 쿠버네티스 자원을 제어하기 위해서는, 먼저 OCI CLI 설치가 필요하다. OCI CLI 환경에서 “kubectl” 명령을 수행하게된다.

그런데 OCI CLI Python 엔진 위에서 작동하기 때문에 OCI 설치 , 해당 호스트에 Python 미리 설치되어 있어야 한다. OCI CLI MacOS, 윈도우즈, 리눅스(오라클, CentOS, Ubuntu) 상의 Python 2 경우, 버전 2.7 이상을 Python 3 경우, 3.5 ~ 3.8 지원한다.

참고로, 보안 프로그램으로 McAfee 구동하고 있는 윈도우즈 환경에서는 OCI CLI 설치 스크립트가 설치를 수행할 powershell.exe 프로그램에 엑세스가 거부되어 설치가 안될  있다. 여기에서는 Oracle Linux 환경에서 OCI CLI 설치  설정을 했다.

Oracle Linux 경우, 아래와 같이 설치 스크립트를 실행하면 Python  OCI CLI 함께 설치된다.

[opc@inst-public ~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16053  100 16053    0     0  29496      0 --:--:-- --:--:-- --:--:-- 29563

===> In what directory would you like to place the install? (leave blank to use '/home/opc/lib/oracle-cli'): ENTER

===> In what directory would you like to place the 'oci' executable? (leave blank to use '/home/opc/bin'): ENTER

===> In what directory would you like to place the OCI scripts? (leave blank to use '/home/opc/bin/oci-cli-scripts'): ENTER

===> Currently supported optional packages are: ['db (will install cx_Oracle)']
What optional CLI packages would you like to be installed (comma separated names; press enter if you don't need any optional packages)?: ENTER

===> Modify profile to update your $PATH and enable shell/tab completion now? (Y/n): Y
===> Enter a path to an rc file to update (file will be created if it does not exist) (leave blank to use '/home/opc/.bashrc'): ENTER

-- Installation successful.
-- Run the CLI with /home/opc/bin/oci --help
[opc@inst-public ~]$ python --version
Python 2.7.5
[opc@inst-public ~]$ oci -v
2.21.3

 

OCI CLI 사용하기 위해 “oci setup config” 명령으로 설정을 수행한다. 이때 Tenancy OCID (OCI 웹콘솔 Administration > Tenancy Details에서 확인), User OCID (OCI 웹콘솔 Identity > Users > User Details에서 자신의 유저 확인), Region 정보가 필요하므로 미리 확인한다.

그리고 OCI CLI OCI 자원을 관리하기 위해서는 API Signing RSA key pair 필요한데 여기서는 신규로 생성했다.

[opc@inst-public ~]$ oci setup config
    This command provides a walkthrough of creating a valid CLI config file.

Enter a location for your config [/home/opc/.oci/config]: ENTER
Enter a user OCID: ocid1.user.oc1..aaaaaaaagzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Enter a tenancy OCID: ocid1.tenancy.oc1..aaaaaaaa6maxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Enter a region by index or name(e.g.
1: ap-chiyoda-1, 2: ap-chuncheon-1, 3: ap-hyderabad-1, 4: ap-melbourne-1, 5: ap-mumbai-1,
6: ap-osaka-1, 7: ap-seoul-1, 8: ap-sydney-1, 9: ap-tokyo-1, 10: ca-montreal-1,
11: ca-toronto-1, 12: eu-amsterdam-1, 13: eu-frankfurt-1, 14: eu-zurich-1, 15: me-dubai-1,
16: me-jeddah-1, 17: sa-santiago-1, 18: sa-saopaulo-1, 19: uk-cardiff-1, 20: uk-gov-cardiff-1,
21: uk-gov-london-1, 22: uk-london-1, 23: us-ashburn-1, 24: us-gov-ashburn-1, 25: us-gov-chicago-1,
26: us-gov-phoenix-1, 27: us-langley-1, 28: us-luke-1, 29: us-phoenix-1, 30: us-sanjose-1): us-ashburn-1
Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: Y
Enter a directory for your keys to be created [/home/opc/.oci]: ENTER
Enter a name for your key [oci_api_key]: ENTER
Public key written to: /home/opc/.oci/oci_api_key_public.pem
Enter a passphrase for your private key (empty for no passphrase): ENTER
Private key written to: /home/opc/.oci/oci_api_key.pem
Fingerprint: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Config written to /home/opc/.oci/config

[opc@instance-dev ~]$

 

oci setup config 과정에서 만들어진 RSA key pair  public key OCI 유저에 등록을 하면 OCI CLI 해당 유저의 자원을 제어할  있게 된다. RSA public key 위치는   Public key written to: /home/opc/.oci/oci_api_key_public.pem” 부분에서 확인할  있다. 먼저 RSA public key 내용을 복사한다.

[opc@inst-public ~]$ cat /home/opc/.oci/oci_api_key_public.pem
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlzgr0ALxtiyYvjPQo/M0

U3yVP0CPFT9hEdDQwL6j1hTZy1TzdFjHKzdMD0c3+2IWOkr+gCLk31AC1f2/4dmX
LwIDAQAB
-----END PUBLIC KEY-----

 

복사한 RSA public key 내용을 OCI 웹콘솔 Identity > Users > User Details  API Keys 화면에서 등록한다. “Add API Key” 클릭하여 “Paste Public Key” 선택한 다음, 복사한 RSA public key 붙여넣고 하단의 “Add” 클릭한다. 이후 내용을 확인하고 “Close” 클릭하여 팝업창을 닫는다.

RSA public key 등록을 하면 아래와 같이 key 추가된 것을 확인할  있다.

 

OCI CLI 명령이 정상 작동하는  확인한다. 아래는 namespace 조회, compartment 조회하는 샘플이다.

[opc@inst-public ~]$ oci os ns get
{
  "data": "apackrsct01"
}
[opc@inst-public ~]$ T=ocid1.tenancy.oc1..aaaaaaaa6maxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[opc@inst-public ~]$ oci iam compartment list -c $T
{
  "data": [
    {

"name": "TEMPORARY_COMPARTMENT_TO_BE_DELETED",
      "time-created": "2020-08-29T05:49:17.995000+00:00"
    }
  ]
}
[opc@inst-public ~]$

 

참고문서: Install and Set Up kubectl

이번에는 쿠버네티스 명령어 툴인 kubectl 설치한다.

kubectl curl 명령 또는 YUM 같은 패지지 관리 툴로 설치할  있다. 여기서는 curl 명령으로 설치한다.

아래 명령으로 최신 버전의 kubectl 바이너리를 다운로드 받는다.

[opc@inst-public ~]$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   161  100   161    0     0    420      0 --:--:-- --:--:-- --:--:--   421
100 38.3M  100 38.3M    0     0  1521k      0  0:00:25  0:00:25 --:--:-- 1565k

 

kubectl 설치한다.

[opc@inst-public ~]$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

 

설치가 정상적으로 되었는지 버전을 확인을  본다.

[opc@inst-public ~]$ kubectl version --client
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:12:00Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}

 

Developer Services > Kubernetes Clusters  이동하여 생성한 클러스터를 선택한다. 상단의 Access Cluster 버튼을 클릭한다. Access Your Cluster 팝업창에서 Cloud Shell Access Local Access  Local Access 선택한다.

 

Local Access 선택해서 나온 지시 내용을 그대로 복사하여 명령어 프롬프트에서 실행한다. kubeconfig 파일을 담을 디렉토리를 생성한 다음, kubeconfig 파일을 설정하여 config 파일에 저장한다. 그리고 KUBECONFIG 환경 변수를 설정한다. KUBECONFIG 환경 변수까지 설정하고 Local Access 팝업창 하단의 “Close” 클릭하여 창을 닫는다.

향후 해당 클러스터에 계속 접근할 것이므로 .bash_profile “export KUBECONFIG=$HOME/.kube/config” 라인을 추가하고 프로파일을 적용해 둔다.

[opc@inst-public ~]$ mkdir -p $HOME/.kube
[opc@inst-public ~]$ oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --file $HOME/.kube/config --region us-ashburn-1 --token-version 2.0.0
New config written to the Kubeconfig file /home/opc/.kube/config
[opc@inst-public ~]$ export KUBECONFIG=$HOME/.kube/config
[opc@inst-public ~]$ cat .bash_profile

export KUBECONFIG=$HOME/.kube/config

 

이제 클러스터에 접속하기 위한 kubectl 설정은 모두 끝났다. kubectl cluster-info 명령으로 클러스터 구성을 조회할  있다. 마스터 노드의 IP 주소와 내부 DNS 엔드포인트를   있다. kubectl 마스터 노드가 통신할  없을 경우, 에러가 출력된다.

[opc@inst-public ~]$ kubectl cluster-info
Kubernetes control plane is running at https://147.154.27.43:6443
CoreDNS is running at https://147.154.27.43:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
 
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

현재 클러스터의 상세한 상태를 덤프를   있으며, 경로를 지정해 파일로 남길  있다. 여기서는 /home/opc/cluster-state 디렉토리가 생성되고 네일스페이스별로 클러스터의 상세 정보를 가져온 것을   있다.

[opc@inst-public ~]$ kubectl cluster-info dump --output-directory=/home/opc/cluster-state
Cluster info dumped to /home/opc/cluster-state
[opc@inst-public ~]$ ls -l /home/opc/cluster-state
total 68
drwxr-xr-x.  2 opc opc  4096 Mar  4 01:23 default
drwxr-xr-x. 18 opc opc  4096 Mar  4 01:23 kube-system
-rw-rw-r--.  1 opc opc 59063 Mar  4 01:23 nodes.json
[opc@inst-public ~]$ ls /home/opc/cluster-state/kube-system/
coredns-779ff5d778-6r5zt  daemonsets.json                       kube-flannel-ds-hxcrs  proxymux-client-mscgv
coredns-779ff5d778-8r67r  deployments.json                      kube-proxy-4rl8h       proxymux-client-ncg26
coredns-779ff5d778-cgqd7  events.json                           kube-proxy-lpjdm       replicasets.json
csi-oci-node-2dxdl        kube-dns-autoscaler-7fb4fdb4df-5nld6  kube-proxy-mbknl       replication-controllers.json
csi-oci-node-2k7l2        kube-flannel-ds-2hqgp                 pods.json              services.json
csi-oci-node-4jsgh        kube-flannel-ds-2p2bz                 proxymux-client-lwq4m

 

kubeconfig 설정 내용을 아래 명령으로 확인할  있다.

[opc@inst-public ~]$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://147.154.27.43:6443
  name: cluster-csgcoleg5rd
contexts:
- context:
    cluster: cluster-csgcoleg5rd
    user: user-csgcoleg5rd
  name: context-csgcoleg5rd
current-context: context-csgcoleg5rd
kind: Config
preferences: {}
users:
- name: user-csgcoleg5rd
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1beta1
      args:
      - ce
      - cluster
      - generate-token
      - --cluster-id
      - ocid1.cluster.oc1.iad.aaaaaaaaaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      - --region
      - us-ashburn-1
      command: oci
      env: []
      provideClusterInfo: false

 

 kubectl 명령으로 클러스터에서 수행 중인 노드 정보를 확인해 본다.

[opc@inst-public ~]$ kubectl get nodes
NAME        STATUS   ROLES   AGE    VERSION
10.0.10.2   Ready    node    5h4m   v1.18.10
10.0.10.3   Ready    node    5h4m   v1.18.10
10.0.10.4   Ready    node    5h3m   v1.18.10

 

kubectl 명령으로 클러스터  네임스페이스를 확인해 본다. 네임스페이스는 쿠버네티스 클러스터를 논리적으로 분할하는 클러스터 가상화 기능으로 네임스페이스별 역할 기반의 접근 제어, CPU/메모리 등의 자원 제한 등에도 활용할  있다. 다음은 아래 조회된 네임스페이스의 용도이다.

- default: 디폴트 네임스페이스로 특별히 지정되지 않으면 사용됨.

- kube-pubic: 모든 사용자가 읽을  있는 네임스페이스. 쿠버네티스 클러스터를 위해 예약된 공간

- kube-system: 쿠버네티스 시스템이나 애드온(add-on) 사용하는 네임스페이스

[opc@inst-public ~]$ kubectl get ns
NAME              STATUS   AGE
default           Active   5h17m
kube-node-lease   Active   5h17m
kube-public       Active   5h17m
kube-system       Active   5h17m

 

모든 노드에서 수행되는 파드 정보를 확인한다. OCI Container Engine for Kubernetes 같이 클라우드 벤더에서 제공하는 관리형 쿠버네티스의 경우, 마스터 노드에서 수행되고 있는 파드는 표시되지 않는다.

STATUS 칼럼의 정보는 쿠버네티스 API 통해 가져오는 파드의 상태 정보이다. READY 칼럼의 분모는 파드에 정의된 컨테이너 수이고, 분자는 실행 상태의 컨테이너  이다. 현재는 아직 사용자 파드를 만들지 않았으므로 쿠버네티스 시스템 관련 기능을 수행하는 kube-system 네임스페이스의 파드들만 있다.

STATUS 칼럼의 주요 상태 정보는 아래와 같다. (참조. Pod Lifecycle)

- Pending: 쿠버네티스 클러스터에 의해 파드 생성 요청은 받았으나, 하나 이상의 컨테이너가 생성되지 않은 상태

- Running: 파드  모든 컨테이너가 생성되어, 적어도 하나의 컨테이너는 실행 중이거나 시작/재시작 중인 상태

- Succeeded: 파드  모든 컨테이너가 정상적으로 종료된 상태

- Failed:  파드  적어도 하나의 컨테이너가 실패 상태로 종료됨.

- Unknown: 파드의 상태 정보를 획득할  없을 . 보통 파드가 수행되는 노드와의 통신 에러  발생함.

RESTARTS 칼럼은 파드가 재시작한 횟수를 의미한다. 파드의 디플로이먼트는 관리 중인 파드가 종료되면, 지정된 파드의 갯수를 유지하기 위해 파드를 재기동한다. RESTARTS 칼럼의 값은 이에 대한 횟수이다.

[opc@inst-public ~]$ kubectl get pods --all-namespaces
NAMESPACE     NAME                                   READY   STATUS    RESTARTS   AGE
kube-system   coredns-779ff5d778-2cq5w               1/1     Running   0          5h4m
kube-system   coredns-779ff5d778-52bxv               1/1     Running   0          5h4m
kube-system   coredns-779ff5d778-v9559               1/1     Running   0          5h12m
kube-system   csi-oci-node-2dxdl                     1/1     Running   1          5h4m
kube-system   csi-oci-node-2k7l2                     1/1     Running   1          5h5m
kube-system   csi-oci-node-4jsgh                     1/1     Running   0          5h5m
kube-system   kube-dns-autoscaler-7fb4fdb4df-vx5sx   1/1     Running   0          5h12m
kube-system   kube-flannel-ds-2hqgp                  1/1     Running   1          5h4m
kube-system   kube-flannel-ds-2p2bz                  1/1     Running   1          5h5m
kube-system   kube-flannel-ds-hxcrs                  1/1     Running   1          5h5m
kube-system   kube-proxy-4rl8h                       1/1     Running   0          5h5m
kube-system   kube-proxy-lpjdm                       1/1     Running   0          5h5m
kube-system   kube-proxy-mbknl                       1/1     Running   0          5h4m
kube-system   proxymux-client-lwq4m                  1/1     Running   0          5h5m
kube-system   proxymux-client-mscgv                  1/1     Running   0          5h4m
kube-system   proxymux-client-ncg26                  1/1     Running   0          5h5m
[opc@inst-public ~]$ kubectl get pods --all-namespaces --sort-by=.spec.nodeName -o=custom-columns=NODE:.spec.nodeName,NAME:.metadata.name,IMAGE:.spec.container[0].image
NODE        NAME                                   IMAGE
10.0.10.2   csi-oci-node-4jsgh                     <none>
10.0.10.2   coredns-779ff5d778-52bxv               <none>
10.0.10.2   coredns-779ff5d778-v9559               <none>
10.0.10.2   kube-proxy-lpjdm                       <none>
10.0.10.2   kube-flannel-ds-2p2bz                  <none>
10.0.10.2   proxymux-client-ncg26                  <none>
10.0.10.3   kube-dns-autoscaler-7fb4fdb4df-vx5sx   <none>
10.0.10.3   proxymux-client-lwq4m                  <none>
10.0.10.3   csi-oci-node-2k7l2                     <none>
10.0.10.3   kube-flannel-ds-hxcrs                  <none>
10.0.10.3   kube-proxy-4rl8h                       <none>
10.0.10.3   coredns-779ff5d778-2cq5w               <none>
10.0.10.4   csi-oci-node-2dxdl                     <none>
10.0.10.4   kube-proxy-mbknl                       <none>
10.0.10.4   kube-flannel-ds-2hqgp                  <none>
10.0.10.4   proxymux-client-mscgv                  <none>

 

배포된 쿠버네티스의 서비스와 디플로이먼트도 조회해 본다.

[opc@inst-public ~]$ kubectl get services --all-namespaces
NAMESPACE     NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
default       kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP                  5h21m
kube-system   kube-dns     ClusterIP   10.96.5.5    <none>        53/UDP,53/TCP,9153/TCP   5h16m
[opc@inst-public ~]$ kubectl get deployments --all-namespaces
NAMESPACE     NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
kube-system   coredns               3/3     3            3           5h16m
kube-system   kube-dns-autoscaler   1/1     1            1           5h16m

 

글 순서

1. Introduction

2.쿠버네티스  OCI 쿠버네티스(OKE) 개요

3. OCI 쿠버네티스 배포, 사용 환경 설정

4. OKE 클러스터에 샘플 웹서버 배포

5. OCI 레지스트리에 이미지 업로드 & 다운로드 설정

6. Wercker 이용한 어플리케이션 빌드

7. Wercker 이용한 어플리케이션 배포

8. OKE 모니터링

여기에 정리한 내용은 오라클 제품을 다루고 있지만, 이는 개인적인 정리 및 테스트 결과일 뿐입니다. 오라클의 공식 문서는 오라클이 제공하는 매뉴얼과 기타 기술문서를 참조하셔야 합니다.