이제 Virtual Node에서 Pod 운영을 위한 ARM 기반의 Ampere A1.Flex Shape 을 사용할 수 있습니다. 현재까지 Virtual Node에서 지원하는 Shape은 다음과 같습니다.
이제 OKE의 Control Plane Process Log(kube-scheduler, kube-controller-manager, cloud-controller-manager, and kube-apiserver)를 OCI Logging 서비스를 통해서 볼 수 있습니다. 해당 로그를 통해서 다음과 같은 내용을 확인할 수 있습니다.
이 기능은 Observability & Management의 Logging 서비스를 통해서 활성화 활 수 있습니다.
다음과 같이 Service로 Container Engine for Kubernetes를 선택한 후 Resouce(Cluster)와 모니터링 하기위한 Category를 선택, Log Name을 입력한 후 Enable Log를 클릭합니다.
이제 다음과 같이 Logging 서비스에서 관련 로그를 볼 수 있습니다.
OKE에 Kubernetes 1.26.7, 1.25.12 버전이 추가되었습니다. 이로써 기존 1.26.2 버전과 1.25.4 버전은 더 이상 지원하지 않습니다.
이제 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
이제 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
OpenSearch Cluster로 데이터를 전달하기 위해 Aggregator인 Logstash와 Collector인 Fluent Bit를 활용할 수 있습니다.
OpenSearch Aggregator를 위한 Logstash Plugin (Logstash OSS with OpenSearch Output Plugin) 설치 및 구성 방법은 Ingesting Data into an OpenSearch Cluster with Logstash의 Install and Configure LogStash 부분을 참고합니다.
OpenSearch Collector를 위한 Fluent Bit 설치 및 구성 방법은 Ingesting Data into an OpenSearch Cluster with Fluent Bit의 Install and Configure Fluent Bit 부분을 참고합니다.
이제 OpenSearch Cluster를 Mutl-Tenancy를 위한 환경으로 구성할 수 있습니다. 여기서의 Tenancy는 OCI의 Tenancy가 아닌 OpenSearch의 Tenancy를 의미합니다. OpenSearch Dashboard에서 Tenant는 index pattern, visualization, dashboard 및 기타 OpenSearch Dashboard 요소를 저장하는 단위입니다. Tenant는 다음 두 가지로 구분할 수 있습니다.
OpenSearch Dashboards multi-tenancy에 대한 더 자세한 정보는 아래 링크를 통해서 확인할 수 있습니다.
OpenSearch Dashboards 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>...
이 글은 개인적으로 얻은 지식과 경험을 작성한 글로 내용에 오류가 있을 수 있습니다. 또한 글 속의 의견은 개인적인 의견으로 특정 회사를 대변하지 않습니다.
Donghu Kim RELEASE-NOTES-2023-CLOUDNATIVE-SECURITY
oci-release-notes-2023 Sept-2023 cloudnative