티스토리 뷰
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
'RedHat OpenShift > 기술문서' 카테고리의 다른 글
[xPaaS] JBoss EAP 6.4/7.0 External DB 연동 (0) | 2018.02.06 |
---|---|
[기타] OpenShift Jenkins Pipeline (0) | 2017.12.14 |
[설치] WebLogic 12.1.3 on Openshift (0) | 2017.07.31 |
[기타] Khan APM 설치 방법 (0) | 2017.07.26 |
[기타] 닷넷코어 (0) | 2017.07.25 |
- Total
- Today
- Yesterday
- 브런치
- SAVOR
- XT3
- 연대앞
- velvia
- 퍼플라떼
- 55mm
- m42 55mm
- xt3 #MMCA #국립현대미술관
- XF14
- 예전사진
- m42 135mm
- xf14mm
- m42
- 캠핑
- 신촌
- 수지
- 논뷰
- 매거진스탠딩
- 필름시뮬레이션
- 23mm
- 손주등장
- XF23
- 보문호수
- 야경
- mf
- 전붙이기
- XF23mm
- 황용식
- Classic Chrome
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |