티스토리 뷰

RedHat OpenShift/기술문서

[기타] OpenShift 3.6 New Feature

알 수 없는 사용자 2017. 8. 14. 15:56

3.6 Release - New Feature

https://docs.openshift.com/container-platform/3.6/release_notes/ocp_3_6_release_notes.html


[Container Orchestration 파트]

1. Container Runtime Interface(CRI)
컨테이너 런타임은 Docker 뿐 아니라 kubernetes의 컨테이너 런타임도 있다.
kublet-to-docker의 상호작용을 위한 CRI 인터페이스를 사용할 수 있다.
현재 안정적인 상태이지만 계속 개발중이다.
$ cat /etc/origin/node/node-config.yaml
enable-cri:
- 'true'


2. CLUSTER CAPACITY UTILITY FOR CHECKING TRUE ALLOCATABLE SPACE

시간이 지남에 따라 디스크 공간은 조각나며, 실제 남은 공간을 더하면 10GB이지만
노드에서 512MB 이상 사용할 수 없는 현상이 발생한다.
명령을 통해 새로운 컨테이너에 일반적인 CPU/Mem 제한 설정을 할 수 있으며, 로그를 통해
작업 부하에 대한 내용을 확인할 수 있다.
$ cluster-capacity --kubeconfig <path-to-kubeconfig> \
--podspec <path-to-pod-spec> --verbose

small-pod pod requirements:
- CPU: 150m
- Memory: 100Mi

The cluster can schedule 52 instance(s) of the pod small-pod.

Termination reason: Unschedulable: No nodes are available that match all of the
following predicates:: Insufficient cpu (2).



3. QUOTA ON HOW MUCH (SIZE AND TYPE) REMOTE STORAGE A PROJECT CAN USE
사용할 수 있는 스토리지에 대한 사이즈 및 클레임 수를 제어할 수 있다.
$ oc create quota my-quota-1 --hard=slow.storageclass.storage.k8s.io/requests.storage=20Gi,slow.storageclass.storage.k8s.io/persistentvolumeclaims=15

$ oc describe quota my-quota-1
Name: my-quota-1
Namespace: default
Resource Used Hard
-------- ---- ---
slow.storageclass.storage.k8s.io/persistentvolumeclaims 0 15
slow.storageclass.storage.k8s.io/requests.storage 0 20Gi


4. ABILITY TO SCOPE PVC QUOTAS BY STORAGE CLASS
PVC별 별도로 할당량을 지정할 수 있다.


* 5. PROJECT CONFIGMAPS, SECRETS, AND DOWNWARD API IN THE SAME DIRECTORY
When you mount a memory backed volume into a container, it leverages a directory. Now, you can place all sources of the configuration for your application (configMaps, secrets, and downward API) into the same directory path.
The new projected line in the volume definition allows you to tell multiple volumes to leverage the same mount point while guarding for path collisions.


6. INIT CONTAINERS
초기 컨테이너에 대한 환경설정을 할 수 있다.
$ cat init-containers.yaml
apiVersion: v1
kind: Pod
metadata:
name: init-loop
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
volumeMounts:
- name: workdir
mountPath: /usr/share/nginx/html
initContainers:
- name: init
image: centos:centos7
command:
- /bin/bash
- "-c"
- "while :; do sleep 2; echo hello init container; done"
volumes:
- name: workdir
emptyDir: {}


7. MULTIPLE SCHEDULERS AT THE SAME TIME
클러스터 내에서 컨테이너 이미지와 pod 형태로 스케줄러 구현을 한다.
$ cat pod-custom-scheduler.yaml
apiVersion: v1
kind: Pod
metadata:
name: custom-scheduler
spec:
schedulerName: custom-scheduler
containers:
- name: hello
image: docker.io/ocpqe/hello-pod


8. TURN CONFIGMAP CONTENT INTO ENVIRONMENT VARIABLES WITHIN THE CONTAINER

컨테이너에 대한 개별적 환경변수 선언대신 configmap을 가져와 동적 변환 할 수 있다.

env:
- name: duplicate_key
value: FROM_ENV
- name: expansion
value: $(REPLACE_ME)
envFrom:
- configMapRef:
name: env-config


9. NODE AFFINITY AND ANTI-AFFINITY
nodeSelector는 해당 노드를 지정하는 강력한 방법을 제공하지만, 노드를 지정할 수 없는경우 충돌나는 경우 등
스케줄링을 통한 유연한 방법 제공
apiVersion: v1
kind: Pod
metadata:
name: with-node-affinity
spec:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: e2e-az-EastWest
operator: In
values:
- e2e-az-East
- e2e-az-West
containers:
- name: with-node-affinity
image: docker.io/ocpqe/hello-pod


10. POD AFFINITY AND ANTI-AFFINITY

POD가 노드에 배포되는 필수 규칙이나 기본 규칙을 지정할 수 있다.
아래 예처럼 security 라는 키를 가진 노드에 먼저 pod가 예약할 수 있다.



11. TAINTS AND TOLERATIONS
Pod의 스케쥴 여부를 제어할 수 있다.
$ oc taint nodes node1 key=value:NoSchedule



12. USING IMAGE STREAMS WITH KUBERNETES RESOURCES (TECHNOLOGY PREVIEW)



[Registry 파트]

1. VALIDATING IMAGE SIGNATURES SHOW APPROPRIATE METADATA
이미지의 metadata 확인을 할 수 있다.
$ oc describe istag origin-pod:latest
Image Signatures:
Name: sha256:c13060b74c0348577cbe07dedcdb698f7d893ea6f74847154e5ef3c8c9369b2c@f66d720cfaced1b33e8141a844e793be
Type: atomic
Status: Verified
Issued By: 172B61E538AAC0EE
Signature is Trusted (verified by user "system:admin" on 2017-04-28 12:32:25 +0200 CEST)
Signature is ForImage ( on 2017-04-28 12:32:25 +0200 CEST)


2. REGISTRY REST ENDPOINT FOR READING AND WRITING IMAGE SIGNATURES

docker registry API를 통해 signature를 읽고 쓸수 있습니다.
또한 쓰기를 위해선 image-signer 롤을 사용해야 합니다.



[Platform Management]

1. REQUIRE EXPLICIT QUOTA TO CONSUME A RESOURCE (TECHNOLOGY PREVIEW)

일반적으로 Quota를 지정하지 않으면 리소스 사용에 제약이 없지만, 

고비용의 컴퓨팅을 사용하는 경우 리소스 사용에 대한 제약이 필요합니다.

스토리지 할당량에 대한 명시적 설정이 없는경우 해당 프로젝트를 사용할 수 없게 하는 기능입니다.



[Storage]

1. AWS EFS PROVISIONER

AWS의 NFS 원격 PV를 동적으로 사용할 수 있습니다.


2. VMWARE VSPHERE STORAGE

 VSANDatastore, ext3, vmdk 및 VSAN등  VMware vSphere 스토리지를 동적으로 사용할 수 있습니다.


3. INCREASED SECURITY WITH ISCSI CHAP AND MOUNT OPERATIONS

iSCSI PV에 CHAP인증을 사용할 수 있습니다.

CHAP인증이란 

http://www.ktword.co.kr/abbr_view.php?m_temp1=567


4. MOUNT OPTIONS (TECHNOLOGY PREVIEW)

PV 마운트에 대한 옵션을 사용할 수 있습니다. 

volume.beta.kubernetes.io/mount-options (https://kubernetes.io/docs/concepts/storage/persistent-volumes/)


5. IMPROVED AND FULLY AUTOMATED SUPPORT FOR CNS-BACKED OCP HOSTED REGISTRY

Integrated registry는 지원하는 몇가지 옵션만 존재했지만, CNS등 저장소를 기반으로 registry  스케일 아웃 등

자동 배포 옵션이 포함됩니다. Gluster-FS등을 사용하여 백업, 뛰어난 읽기 쓰기 등 데이터 관리 등 활용할 수 있습니다.


[OSEv3:children]

masters

nodes

glusterfs_registry

[OSEv3:vars]

openshift_hosted_registry_storage_kind=glusterfs 



6. OPENSHIFT CONTAINER PLATFORM COMMERCIAL EVALUATION SUBSCRIPTION INCLUDES CNS AND CRS

The OpenShift Commercial Evaluation subscription includes container native storage (CNS), container ready storage (CRS) solutions.

CNS : container native storage (https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.1/html/container-native_storage_for_openshift_container_platform_3.4/)

CRS : container ready storage (노드 자체에 glusterfs 볼룸을 마운트하여, 컨테이너 저장공간으로 사용)


[Scale]

1. UPDATED ETCD PERFORMANCE GUIDANCE

ETCT 성능 향상 (https://docs.openshift.com/container-platform/3.6/scaling_performance/host_practices.html#scaling-performance-capacity-host-practices)


2. UPDATED SIZING GUIDANCE

Maximum nodes per cluster 2000으로 증가 (3.5에서는 최대 1000)



[Networking]

1. MULTIPLE DESTINATIONS IN EGRESS-ROUTER

egress router의 여러 목적지 설정 가능

- name: EGRESS_DESTINATION

  value: |

    80 tcp 1.2.3.4

    8080 tcp 5.6.7.8 80

    8443 tcp 9.10.11.12 443

    13.14.15.16


2. ADDED HTTP PROXY MODE FOR THE EGRESS ROUTER

목적지 IP/name에 대한 TLS연결 쉽지 않았다. 대신 proxy를 통해 해당 패킷을 redirecting 할 수 있다.

# export http_proxy=http://my-egress-router-service-name:8080

# export https_proxy=http://my-egress-router-service-name:8080


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함