주:

컴팩트한 Oracle Cloud Native Environment 실행

소개

Oracle Cloud Native Environment의 1.5 릴리스에서는 컴팩트한 배포를 도입하여 비시스템 Kubernetes 워크로드가 제어 플레인 노드에서 실행되도록 했습니다. --compacttrue로 설정하면 플랫폼 API 서버가 제어 플레인 노드를 도용하지 않습니다. 이 설정을 통해 비시스템 Kubernetes 워크로드를 예약하고 제어 플레인 노드에서 실행할 수 있습니다.

중요: 운용 환경의 경우 이 옵션을 false(기본값)로 설정해야 합니다.

이 사용지침서에서는 압축된 Oracle Cloud Native Environment 배포를 생성, 검증 및 설치합니다.

목표

필요 조건

단일 Oracle Linux 8 이상 시스템이 다음과 같이 프로비저닝됩니다.

Oracle Support 책임제한

Oracle은 다음 지침의 단계 순서에 대한 기술 지원을 제공하지 않습니다. 이러한 단계는 운용에서 사용하도록 의도되지 않은 배치 토폴로지를 참조하기 때문입니다. 이 사용지침서에서는 선택적인 지침을 제공하여 개발자들이 개발 중에 로컬로 서비스를 테스트하는 데 도움을 줍니다.

클라우드 전용 애플리케이션의 개발 및 관리를 위해 지원되는 Oracle 방법은 Oracle Cloud Native Environment입니다. 자세한 내용은 https://docs.oracle.com/en/operating-systems/olcne/를 참조하십시오.

랩 환경 설정

주: 무료 실습 환경을 사용하는 경우 Oracle Linux Lab Basics에서 연결 및 기타 사용 지침을 참조하십시오.

정보: 무료 실습 환경은 환경을 생성할 수 있도록 제공된 노드에 Oracle Cloud Native Environment를 배포합니다. 이 배치는 실행 후 완료되는 데 약 8-10분이 걸립니다. 따라서 이 실행 중에 단계를 마치고 연습을 완료하도록 돌아갈 수 있습니다.

  1. 아직 연결되지 않은 경우 터미널을 열고 ssh를 통해 ocne-node01 시스템에 연결합니다.

    ssh oracle@<ip_address_of_ol_node>
    

    주: (선택 사항) 무료 실습 환경에서는 감사 로그에 보고된 다음 문제를 해결하는 SELinux 정책 임시해결책을 자동으로 배치합니다. 이 오류로 인해 일부 상황에서 Oracle Cloud Native Environment가 제대로 배치되지 않을 수 있습니다. sudo journalctl -xe 및 키보드 화살표를 사용하여 시스템 로그를 검사하여 로그를 탐색하여 사용자 환경에서 발생하는지 확인할 수 있습니다. 제공된 무료 실습 환경에서 이를 실행할 필요가 없습니다.

    Jun 16 19:03:51 ocne-node01 setroubleshoot[125840]: SELinux is preventing iptables from ioctl access on the directory /sys/fs/>
    

    임시해결책:

    echo '(allow iptables_t cgroup_t (dir (ioctl)))' | sudo tee /root/local_iptables.cil
    sudo semodule -i /root/local_iptables.cil
    

플랫폼 CLI 구성 파일 만들기

YAML 기반 구성 파일을 사용하면 환경 및 모듈을 간단하게 만들고 관리할 수 있습니다. 구성 파일에는 만들려는 환경과 모듈에 대한 세부 정보가 포함되므로 Platform CLI 명령 옵션을 반복해서 입력하면 됩니다.

구성 파일을 사용하는 경우 전역 명령 옵션이므로 플랫폼 CLI 명령에 --config-file 옵션을 전달합니다. --config-file 옵션은 --force 옵션을 제외하고 다른 명령줄 옵션을 사용 안함으로 설정합니다. olcnectl 명령은 다른 명령줄 옵션을 무시하고 구성 파일의 값만 사용합니다.

무료 실습 환경에서는 이 연습에서 사용할 구성 파일을 생성합니다. 수동으로 구성 파일을 만드는 방법은 Oracle 설명서의 Using a Configuration File을 참조하십시오.

  1. 구성 파일 컨텐츠를 봅니다.

    cat ~/myenvironment.yaml
    
    • environment-name 옵션은 모듈을 배치하는 환경을 설정합니다.
    • module: 옵션은 myclustername: 클러스터와 함께 kubernetes 모듈을 배치합니다.
    • compact: 옵션은 배치가 제어 플레인 노드에서 수행되도록 설정합니다.

    주: 이 구성 파일에는 worker-nodes: 옵션이 없습니다. 모듈이 단일 제어 플레인 노드에만 배포되어야 하므로 compact:를 사용할 때 구성 파일에서 이 옵션을 제거해야 합니다.

환경 및 Kubernetes 모듈 생성

  1. 환경을 생성합니다.

    cd ~
    olcnectl environment create --config-file myenvironment.yaml
    

    출력 예:

    [oracle@ocne-node01 ~]$ olcnectl environment create --config-file myenvironment.yaml
    Environment myenvironment created.
    
  2. Kubernetes 모듈을 생성합니다.

    olcnectl module create --config-file myenvironment.yaml
    

    출력 예:

    [oracle@ocne-node01 ~]$ olcnectl module create --config-file myenvironment.yaml
    Modules created successfully.
    
  3. Kubernetes 모듈을 검증합니다.

    olcnectl module validate --config-file myenvironment.yaml
    

    출력 예:

    [oracle@ocne-node01 ~]$ olcnectl module validate --config-file myenvironment.yaml
    Validation of module mycluster succeeded.
    

    이 예제에는 검증 오류가 없습니다. 오류가 있으면 명령 출력에서 검증 검사를 수정하고 전달하는 데 필요한 구문을 제공합니다.

  4. Kubernetes 모듈을 설치합니다.

    olcnectl module install --config-file myenvironment.yaml
    

    노드에 Kubernetes를 배포하는 데 몇 분 정도 걸릴 수 있습니다.

    출력 예:

    [oracle@ocne-node01 ~]$ olcnectl module install --config-file myenvironment.yaml
    Modules installed successfully.
    

    주: 모듈 설치가 실패하면 오류가 다시 보고될 수 있습니다. 모듈 "mycluster"가 정상 상태에 도달하지 않습니다. 마지막 상태: externalip-webhook은 정상 상태가 아닙니다. 이 오류는 환경 또는 인증서의 구성이 올바르지 않아서 포드 상태가 잘못되었기 때문일 수 있습니다.

    이 자습서에서는 확실성에 대해 자세히 설명합니다. 하지만 가장 간단한 레벨에서 노드의 확실성은 특정 노드가 해당 노드에 대한 POD를 끌어오거나 재생성하는 위치를 결정합니다. 이 배치에는 노드가 하나만 있기 때문에 Pod가 배치될 수 있도록 하려면 untegred 상태가 있어야 합니다. 확실성에 대한 자세한 내용은 Kubernetes 업스트림 설명서의 확실성 및 허용 한도를 참조하십시오.

  5. Kubernetes 모듈 배치를 검증합니다.

    olcnectl module instances --config-file myenvironment.yaml
    

    출력 예:

    [oracle@ocne-node01 ~]$ olcnectl module instances --config-file myenvironment.yaml
    INSTANCE       	MODULE    	STATE    
    10.0.0.140:8090	node      	installed
    mycluster      	kubernetes	installed
    

Kubernetes 명령행 도구 설정 및 Kubernetes 환경 검증

  1. kubectl 명령을 설정합니다.

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    export KUBECONFIG=$HOME/.kube/config
    echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
    
  2. kubectl가 작동하는지 확인합니다.

    kubectl get nodes
    

    출력 예:

    [oracle@ocne-node01 ~]$ kubectl get nodes
    NAME          STATUS   ROLES    AGE     VERSION
    ocne-node01   Ready    <none>   5m30s   v1.22.8+1.el8
    
  3. POD 목록을 가져옵니다.

    kubectl get pods -A
    

    출력 예:

    [oracle@ocne-node01 ~]$ kubectl get pods -A
    NAMESPACE                      NAME                                             READY   STATUS    RESTARTS   AGE
    externalip-validation-system   externalip-validation-webhook-7988bff847-bkvxd   1/1     Running   0          5m47s
    kube-system                    coredns-7cbc77dbc7-4rghr                         1/1     Running   0          5m47s
    kube-system                    coredns-7cbc77dbc7-lp7x6                         1/1     Running   0          5m47s
    kube-system                    etcd-ocne-node01                                 1/1     Running   0          6m7s
    kube-system                    kube-apiserver-ocne-node01                       1/1     Running   0          6m7s
    kube-system                    kube-controller-manager-ocne-node01              1/1     Running   0          6m7s
    kube-system                    kube-flannel-ds-5spkp                            1/1     Running   0          5m47s
    kube-system                    kube-proxy-cq27f                                 1/1     Running   0          5m47s
    kube-system                    kube-scheduler-ocne-node01                       1/1     Running   0          6m7s
    kubernetes-dashboard           kubernetes-dashboard-5d5d4947b5-n2vcd            1/1     Running   0          5m47s
    

로컬에서 개발된 애플리케이션을 Oracle Cloud Native Environment에 배포하여 테스트할 수 있도록 모든 것이 올바르게 작동하고 실행 중임을 확인할 수 있습니다.

요약

Oracle Cloud Native Environment 버전을 설치하는 것은 그 시작일 뿐이며 로컬 테스트 및 개발을 지원하는 유용한 툴입니다. 자세한 예는 Run Kubernetes on Oracle Linux를 참조하십시오.

추가 정보

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 보다 무료 학습 컨텐츠에 접근할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.

제품 설명서는 Oracle Help Center를 참조하십시오.