OCI Release Notes 2023

9월 OCI Cloud Native & Security 업데이트 소식

2023년 9월 OCI Cloud Native & Security 업데이트 소식입니다.

Container Instances now support Arm-based Ampere A1.Flex shape

릴리즈 내용

이제 Container Instance에서 ARM 기반의 Ampere A1.Flex Shape (CI.Standard.A1.Flex)을 지원합니다. 다음은 현재 Container Instance에서 지원하는 Shape 목록입니다.

ShapeOCPUMemory (GB)Ephemeral Storage (GB)Max Network BandwidthMax VNICs Total: Linux
CI.Standard.E3.FlexMinimum: 1 OCPU

Maximum: 64 OCPU (with extended OCPUs)
Minimum: 1 GB or a value matching the number of OCPUs, whichever is greater

Maximum: 64 GB per OCPU, up to 1024 GB total
151 Gbps per OCPU, maximum 40 Gbps1 VNIC
CI.Standard.E4.FlexMinimum: 1 OCPU

Maximum: 64 OCPU (with extended OCPUs)
Minimum: 1 GB or a value matching the number of OCPUs, whichever is greater

Maximum: 64 GB per OCPU, up to 1024 GB total
151 Gbps per OCPU, maximum 40 Gbps1 VNIC
CI.Standard.A1.FlexMinimum: 1 OCPU

Maximum: 76 OCPU (with extended OCPUs)
Minimum: 1 GB or a value matching the number of OCPUs, whichever is greater

Maximum: 64 GB per OCPU, up to 488 GB total
151 Gbps per OCPU, maximum 40 Gbps1 VNIC

Support for virtual nodes running pods on Arm shapes

릴리즈 내용

이제 Virtual Node에서 Pod 운영을 위한 ARM 기반의 Ampere A1.Flex Shape 을 사용할 수 있습니다. 현재까지 Virtual Node에서 지원하는 Shape은 다음과 같습니다.

  • Pod.Standard.A1.Flex
  • Pod.Standard.E3.Flex
  • Pod.Standard.E4.Flex

Support for Container Engine for Kubernetes service logs

릴리즈 내용

이제 OKE의 Control Plane Process Log(kube-scheduler, kube-controller-manager, cloud-controller-manager, and kube-apiserver)를 OCI Logging 서비스를 통해서 볼 수 있습니다. 해당 로그를 통해서 다음과 같은 내용을 확인할 수 있습니다.

  • kube-scheduler log: scheduler decisions 로그
  • kube-controller-manager log: reconciling the deployment 로그
  • cloud-controller-manager log: provisioning the load balancer 로그
  • kube-apiserver log: every request sent to the Kubernetes API server 로그

이 기능은 Observability & ManagementLogging 서비스를 통해서 활성화 활 수 있습니다.

다음과 같이 Service로 Container Engine for Kubernetes를 선택한 후 Resouce(Cluster)와 모니터링 하기위한 Category를 선택, Log Name을 입력한 후 Enable Log를 클릭합니다.

이제 다음과 같이 Logging 서비스에서 관련 로그를 볼 수 있습니다.


Support for Kubernetes version 1.26.7, 1.25.12

릴리즈 내용

OKE에 Kubernetes 1.26.7, 1.25.12 버전이 추가되었습니다. 이로써 기존 1.26.2 버전과 1.25.4 버전은 더 이상 지원하지 않습니다.

현재 지원 버전

  • 1.27.2
  • 1.26.7 (1.26.2 대체)
  • 1.25.12 (1.25.4 대체)

Support for Different Application Shapes

릴리즈 내용

이제 Function을 배포할 때 Function을 실행하기 위한 Compute Instance의 Process Architecture를 지정할 수 있습니다. 단일 아키텍처(ex. Arm)에서 실행하거나 여러 아키텍처(ex. Arm, x86 모두)에서 실행되도록 할 수 있습니다.

다음과 같이 Functions Appliation을 생성할 때 Shape을 선택할 수 있으며, 여러 아키텍처로 구성하고자 할 경우 GENERIC_X86_ARM을 선택합니다.

여러 아키텍처를 지원하는 Function을 배포할 경우, 일반적으로 권장하는 방식은 fn 명령어를 사용하는 것입니다.

$ fn -v deploy --app <app-name>

이 외에도 Docker buildx plugin을 사용하여 빌드하는 방식도 제공합니다. 상세한 내용은 다음 링크를 참고합니다.
https://docs.oracle.com/en-us/iaas/Content/Functions/Tasks/functionsspecifyingcomputearchitectures.htm#functionsbuildingmultiarchimages-fnprojectcli

Search with OpenSearch now supports OpenID Connect

릴리즈 내용

이제 OpenSearch 서비스에서 OpenID Connect를 지원합니다. OpenSearch Cluster 접근을 위해 Identity Provider를 통해 발급받은 토큰을 활용할 수 있습니다.

설정 방법

OpenSearch Security Plugin의 Configuration API를 통해서 OpenID Connect를 활성화 할 수 있습니다. 다음은 예시 입니다.

PUT _plugins/_security/api/securityconfig/config
{
  "dynamic": {
    "security_mode": "ENFORCING",
    "http": {
      "anonymous_auth_enabled": false,
      "xff": {
        "enabled": false
      }
    },
    "authc": {
      "openid_auth_domain": {
                    "http_enabled": true,
                    "transport_enabled": true,
                    "order": 0,
                    "http_authenticator": {
                        "challenge": false,
                        "type": "openid",
                        "config": {
                            "subject_key": "sub",
                            "roles_key": "sub",
                            "openid_connect_url": "https://idcs-<IDCS_Instance_ID>.identity.oraclecloud.com/.well-known/openid-configuration"
                        }
                    },
                    "authentication_backend": {
                        "type": "noop",
                        "config": {}
                    },
                    "description": "Authenticate using OpenId connect"
                },
                "basic_internal_auth_domain": {
                    "http_enabled": true,
                    "transport_enabled": true,
                    "order": 1,
                    "http_authenticator": {
                        "challenge": true,
                        "type": "basic",
                        "config": {}
                    },
                    "authentication_backend": {
                        "type": "intern",
                        "config": {}
                    },
                    "description": "Authenticate via HTTP Basic against internal users database"
                }
    },
    "authz": null
  }
}

OpenID Connect를 사용할 경우 다음과 같이 Identity Provider를 통해서 발급받은 Access Token을 활용합니다. 아래는 Cluster heath API를 사용할 때 OpenID Connect를 활용한 예시입니다.

GET /_cluster/health
Authorization: Bearer <access_token>

참고로 IDCS에서 Access Token을 발급받는 방법은 아래 링크를 참고합니다.
Using Access Token Authorization with My Services API


Ingest Log Data with Search with OpenSearch

릴리즈 내용

OpenSearch Cluster로 데이터를 전달하기 위해 Aggregator인 Logstash와 Collector인 Fluent Bit를 활용할 수 있습니다.

Logstash 설치 및 구성

OpenSearch Aggregator를 위한 Logstash Plugin (Logstash OSS with OpenSearch Output Plugin) 설치 및 구성 방법은 Ingesting Data into an OpenSearch Cluster with LogstashInstall and Configure LogStash 부분을 참고합니다.

Fluent Bit 설치 및 구성

OpenSearch Collector를 위한 Fluent Bit 설치 및 구성 방법은 Ingesting Data into an OpenSearch Cluster with Fluent BitInstall and Configure Fluent Bit 부분을 참고합니다.


Search with OpenSearch now supports OpenSearch Dashboards multi-tenancy

릴리즈 내용

이제 OpenSearch Cluster를 Mutl-Tenancy를 위한 환경으로 구성할 수 있습니다. 여기서의 Tenancy는 OCI의 Tenancy가 아닌 OpenSearch의 Tenancy를 의미합니다. OpenSearch Dashboard에서 Tenant는 index pattern, visualization, dashboard 및 기타 OpenSearch Dashboard 요소를 저장하는 단위입니다. Tenant는 다음 두 가지로 구분할 수 있습니다.

  • Private: OpenSearch Dashboard 사용자는 데이터를 서로 공유할 수 없고, 오직 특정 사용자만 접근할 수 있습니다.
  • Global: 모든 OpenSearch Dashboard 사용자 사이에서 데이터를 공유할 수 있습니다.

OpenSearch Dashboards multi-tenancy에 대한 더 자세한 정보는 아래 링크를 통해서 확인할 수 있습니다.
OpenSearch Dashboards multi-tenancy

Multi-Tenancy 기능 활성 여부 확인

다음 Configuration API를 통해서 기능 활성 여부를 확인할 수 있습니다.

GET _plugins/_security/api/securityconfig

{
   "config" : {
      "dynamic" : {
         "filtered_alias_mode" : "warn",
         "disable_rest_auth" : false,
         "disable_intertransport_auth" : false,
         "respect_request_indices_options" : false,
         "kibana" : {
            "multitenancy_enabled" : false,
            "server_username" : "kibanaserver",
            "index" : ".kibana"
         },
   <additional securityconfig response returned for GET request>...

만일 활성화가 안되어 있다면 다음 예시와 같이 Configuration API를 통해서 활성화 할 수 있습니다.

PUT _plugins/_security/api/securityconfig/config
{
   "dynamic": {
      "security_mode": "ENFORCING",
      "kibana": {
         "multitenancy_enabled": true,
         "server_username": "kibanaserver",
         "index": ".kibana_1"
      },
   <additional securityconfig details for PUT request>...


이 글은 개인적으로 얻은 지식과 경험을 작성한 글로 내용에 오류가 있을 수 있습니다. 또한 글 속의 의견은 개인적인 의견으로 특정 회사를 대변하지 않습니다.

RELEASE-NOTES-2023-CLOUDNATIVE-SECURITY
oci-release-notes-2023 Sept-2023 cloudnative

Dialogue & Discussion