Kubernetes Changes I Missed After Earning the CKA (2022/11 ~ 2025)

Contents

After earning the CKA (Certified Kubernetes Administrator) certification in 2022/11, I wanted to know how Kubernetes had evolved and researched it in depth. This post reviews the major changes that are easy to miss in day-to-day work.

📑 Contents

  1. 📊 Versions at a Glance
  2. 🚨 Breaking Changes You Should Not Miss
  3. 🎯 Security Enhancements
  4. 🔧 Operational Improvements
  5. 🚀 New Features
  6. 📈 Performance and Scaling Improvements
  7. ⭐ Latest Updates in 2025
  8. 🔄 Migration Guide
  9. 💡 Practical Checks
  10. 🎯 Conclusion

📊 Versions at a Glance

Currently supported versions (as of 2025/6)

Major versions that have reached EOL

🚨 Breaking Changes You Should Not Miss

1. Container Image Registry Change (v1.26)

This is one of the most important changes.

bash
# ❌ 기존 (2022년 이전)
k8s.gcr.io/pause:3.8

# ✅ 새로운 방식 (2023년부터)
registry.k8s.io/pause:3.9

Affected areas:

What to do:

yaml
# 기존 매니페스트 업데이트 필요
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: my-app
    image: registry.k8s.io/my-app:latest  # k8s.gcr.io에서 변경

2. CRI v1alpha2 Removal (v1.26)

containerd 1.6.0 or later is now required.

bash
# containerd 버전 확인
containerd --version

# 1.6.0 미만이면 업그레이드 필요
sudo apt update && sudo apt upgrade containerd

🎯 Security Enhancements

1. SeccompDefault Reaches General Availability (v1.27)

A default seccomp profile is automatically applied to Pods.

yaml
# 더 이상 명시적으로 설정할 필요 없음
apiVersion: v1
kind: Pod
metadata:
  annotations:
    # seccomp.security.alpha.kubernetes.io/pod: runtime/default  # 불필요
spec:
  securityContext:
    # seccompProfile 자동 적용됨

2. KMS v2 Encryption GA (v1.29)

Encryption of etcd data has been strengthened.

yaml
# /etc/kubernetes/encryption-config.yaml
apiVersion: apiserver.config.k8s.io/v1
kind: EncryptionConfiguration
resources:
- resources:
  - secrets
  providers:
  - kms:
      name: myKmsPlugin
      endpoint: unix:///tmp/socketfile.sock
      apiVersion: v2  # v2가 기본값

🔧 Operational Improvements

1. Non-Graceful Node Shutdown Recovery GA (v1.28)

Pod recovery is faster when a node shuts down unexpectedly.

yaml
# kube-controller-manager 설정에 자동 포함
apiVersion: v1
kind: Pod
metadata:
  annotations:
    node.alpha.kubernetes.io/ttl: "0"  # 즉시 복구

2. ReadWriteOncePod Access Mode GA (v1.29)

Ensures that a volume can be used by only a single Pod.

yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: single-pod-pvc
spec:
  accessModes:
  - ReadWriteOncePod  # 새로운 액세스 모드
  resources:
    requests:
      storage: 1Gi

Use cases:

3. Extended Version Skew Support (v1.28)

Support now extends to versions as old as n-3, increasing upgrade flexibility.

bash
# 예: 컨트롤 플레인이 1.31이면
# 노드는 1.28까지 지원 (이전엔 1.29까지만)

# 업그레이드 시나리오 예시
Control Plane: 1.31.x
Worker Nodes: 1.28.x  # ✅ 지원됨

🚀 New Features

1. ValidatingAdmissionPolicies Beta (v1.28)

You can define complex policies without OPA.

yaml
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: ValidatingAdmissionPolicy
metadata:
  name: resource-limits-policy
spec:
  failurePolicy: Fail
  matchConstraints:
    resourceRules:
    - operations: ["CREATE", "UPDATE"]
      apiGroups: [""]
      apiVersions: ["v1"]
      resources: ["pods"]
  validations:
  # CPU 제한 검증
  - expression: |
      object.spec.containers.all(container, 
        has(container.resources.limits.cpu) && 
        int(container.resources.limits.cpu.replace('m', '')) <= 2000
      )
    message: "Container CPU limit must not exceed 2000m"
  # 메모리 제한 검증  
  - expression: |
      object.spec.containers.all(container,
        has(container.resources.limits.memory) &&
        int(container.resources.limits.memory.replace('Gi', '')) <= 8
      )
    message: "Container memory limit must not exceed 8Gi"

Practical use cases:

2. Sidecar Containers Alpha (v1.28)

The sidecar pattern is supported natively without Istio or Dapr.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: app-with-sidecar
spec:
  initContainers:
  # 로그 수집 사이드카
  - name: log-collector
    image: fluent/fluent-bit:latest
    restartPolicy: Always  # 🔑 사이드카 핵심 특성
    volumeMounts:
    - name: logs
      mountPath: /var/log
  # 메트릭 수집 사이드카  
  - name: metrics-exporter
    image: prom/node-exporter:latest
    restartPolicy: Always
    ports:
    - containerPort: 9100
  containers:
  - name: main-app
    image: my-app:latest
    volumeMounts:
    - name: logs
      mountPath: /app/logs
  volumes:
  - name: logs
    emptyDir: {}

Differences from existing initContainers:

3. Job Pod Replacement Policy (v1.28)

When a Job fails, choose between immediate restart and restart after waiting.

yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: data-processing-job
spec:
  # 🆕 새로운 Pod 교체 정책
  podReplacementPolicy: Failed  # Failed | TerminatingOrFailed
  completions: 5
  parallelism: 2
  backoffLimit: 3
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: processor
        image: data-processor:latest
        resources:
          limits:
            memory: "4Gi"
            cpu: "2"

Policy options:

4. Node Log Access API (v1.27)

You can query node logs directly with kubectl.

bash
# 노드 시스템 로그 확인
kubectl get --raw "/api/v1/nodes/worker-node-1/proxy/logs/journal" | tail -n 100

# kubelet 로그 확인
kubectl get --raw "/api/v1/nodes/worker-node-1/proxy/logs/kubelet.log" | grep ERROR

# 특정 서비스 로그
kubectl get --raw "/api/v1/nodes/worker-node-1/proxy/logs/journal?query=_SYSTEMD_UNIT=docker.service"

Usage scenarios:

5. Linux Swap Memory Support Beta (v1.28)

When memory is insufficient, swap can be used instead of forcibly terminating Pods.

bash
# kubelet 설정 업데이트
--feature-gates=NodeSwap=true
--memoryswap.behavior=LimitedSwap

# 스왑 활성화 확인
swapon --show
yaml
# Pod에서 스왑 사용량 제한
apiVersion: v1
kind: Pod
metadata:
  name: memory-intensive-app
spec:
  containers:
  - name: app
    image: memory-app:latest
    resources:
      limits:
        memory: "2Gi"
      requests:
        memory: "1Gi"
    # 스왑 사용량 = 메모리 limit와 동일하게 설정됨

Precautions:

6. Windows Privileged Container Support GA (v1.26)

Privileged containers can now run on Windows nodes as well.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: windows-privileged-pod
spec:
  nodeSelector:
    kubernetes.io/os: windows
  containers:
  - name: windows-app
    image: mcr.microsoft.com/windows/servercore:ltsc2022
    securityContext:
      windowsOptions:
        hostProcess: true  # Windows 특권 모드
        runAsUserName: "NT AUTHORITY\\SYSTEM"
    command: ["powershell.exe", "-c", "Get-Service"]

7. Service IP Address Range Management API Alpha (v1.29)

You can manage Service CIDRs dynamically.

yaml
apiVersion: networking.k8s.io/v1alpha1
kind: ServiceCIDR
metadata:
  name: service-cidr-1
spec:
  cidrs:
  - "10.96.0.0/16"   # 기본 Service CIDR
  - "10.97.0.0/16"   # 추가 Service CIDR

Use cases:

8. CEL-Based Admission Control Alpha (v1.26)

Common Expression Language enables more flexible validation.

yaml
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: ValidatingAdmissionPolicy
metadata:
  name: cel-security-policy
spec:
  validations:
  # 복잡한 조건식 예시
  - expression: |
      !(object.spec.securityContext.runAsUser == 0) || 
      (object.metadata.namespace == 'kube-system')
    message: "Root user only allowed in kube-system namespace"
  
  # 리소스 간 의존성 검증
  - expression: |
      object.spec.containers.all(container,
        has(container.resources.requests) ? 
        int(container.resources.requests.cpu.replace('m', '')) >= 100 : false
      )
    message: "All containers must request at least 100m CPU"

📈 Performance and Scaling Improvements

1. nftables Backend Alpha (v1.29)

A new backend designed to overcome iptables performance limitations.

bash
# kube-proxy nftables 모드 활성화
--proxy-mode=nftables
--feature-gates=NFTablesProxyMode=true

# 성능 확인
nft list tables
nft list table ip kube-proxy

Performance improvements:

Before/after comparison (10,000 Services):

2. Dynamic Resource Allocation (DRA) Alpha (v1.26)

Specialized hardware such as GPUs and FPGAs can be allocated to individual Pods with fine-grained control.

yaml
# ResourceClass 정의
apiVersion: resource.k8s.io/v1alpha2
kind: ResourceClass
metadata:
  name: gpu-class
driverName: gpu.example.com
parameters:
  apiVersion: gpu.example.com/v1
  kind: GPUConfig
  memory: "16Gi"
  computeCapability: "8.0"
---
# Pod에서 동적 리소스 사용
apiVersion: v1
kind: Pod
metadata:
  name: ml-training-pod
spec:
  resourceClaims:
  - name: gpu-claim
    source:
      resourceClaimTemplateName: gpu-template
  containers:
  - name: trainer
    image: tensorflow/tensorflow:latest-gpu
    resources:
      claims:
      - name: gpu-claim

Differences from the previous approach:

3. Robust VolumeManager Reconstruction Beta (v1.27)

Volume mount/unmount performance has improved significantly.

bash
# kubelet 설정에서 활성화
--feature-gates=NewVolumeManagerReconstruction=true

Improvements:

4. Image Pull Performance Improvements (v1.27)

Container image downloads are more efficient.

yaml
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: app
    image: my-large-image:latest
    imagePullPolicy: IfNotPresent
  # 병렬 이미지 풀 지원
  initContainers:
  - name: init1
    image: init-image-1:latest
  - name: init2  
    image: init-image-2:latest  # 동시에 다운로드

5. Improved Support for Large File Systems (v1.28)

Even petabyte-scale storage can now be handled efficiently.

yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: large-storage
spec:
  capacity:
    storage: 100Ti  # 대용량 스토리지 지원 개선
  accessModes:
  - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  csi:
    driver: large-storage.csi.driver
    volumeHandle: "large-volume-id"

6. Scheduler Performance Optimization (v1.29)

Scheduling performance has improved in large clusters.

bash
# 스케줄러 프로파일링 확인
kubectl get componentstatuses
kubectl logs -n kube-system deployment/kube-scheduler | grep "duration"

Improvements:

7. etcd Compression Improvements (v1.28)

etcd data compression is more efficient.

bash
# etcd 압축 상태 확인
etcdctl --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key \
  endpoint status --write-out=table

Performance improvements:

⭐ Latest Updates in 2025

Kubernetes 1.33 "Octarine" (2025/4)

The 1.33 release, the most notable release of 2025, opens Kubernetes' second 10-year period.

1. Sidecar Containers Reach General Availability (GA)

The most anticipated feature has finally reached a stable release.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: myapp-with-sidecar
spec:
  initContainers:
  - name: network-sidecar
    image: nginx:1.25
    restartPolicy: Always  # 이것이 핵심!
    lifecycle:
      preStop:
        exec:
          command: ["/bin/sh", "-c", "sleep 5"]
  containers:
  - name: main-app
    image: myapp:latest
    ports:
    - containerPort: 8080

Differences from existing Istio/Dapr setups:

2. In-Place Pod Resource Resize (Beta)

You can adjust a Pod's CPU/memory without downtime.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: resizable-pod
spec:
  containers:
  - name: app
    image: nginx
    resources:
      requests:
        memory: "1Gi"
        cpu: "500m"
      limits:
        memory: "2Gi"
        cpu: "1000m"
  # 이후 kubectl patch로 실시간 변경 가능
bash
# 실시간 리소스 변경 (재시작 없음!)
kubectl patch pod resizable-pod --type='merge' -p='
{
  "spec": {
    "containers": [
      {
        "name": "app",
        "resources": {
          "requests": {
            "memory": "2Gi",
            "cpu": "1000m"
          },
          "limits": {
            "memory": "4Gi", 
            "cpu": "2000m"
          }
        }
      }
    ]
  }
}'

Use cases:

3. Improved Memory Efficiency with Streaming List Responses

Commands such as kubectl get pods --all-namespaces are 20 times faster in large clusters.

bash
# 1.33 이전: 70-80GB 메모리 사용
# 1.33 이후: 3GB로 대폭 감소

# 대규모 리스트 조회 테스트
time kubectl get pods --all-namespaces -o wide

4. User Namespaces Enabled by Default (Beta)

Container security has been significantly strengthened.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: secure-pod
spec:
  hostUsers: false  # 사용자 네임스페이스 활성화
  containers:
  - name: app
    image: ubuntu:22.04
    securityContext:
      runAsNonRoot: true
      runAsUser: 1000

5. Volume Populators GA

Volumes can be automatically populated from data sources.

yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data-from-git
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  dataSourceRef:  # 새로운 필드
    kind: GitVolumePopulator
    apiGroup: example.com
    name: my-git-repo

6. Multiple Service CIDRs GA

This feature addresses IP address exhaustion.

yaml
apiVersion: networking.k8s.io/v1alpha1
kind: ServiceCIDR
metadata:
  name: additional-service-cidr
spec:
  cidrs:
  - "10.96.0.0/12"
  - "172.16.0.0/16"  # 추가 CIDR 블록
bash
# Service IP 사용량 확인
kubectl get servicecidr
kubectl get ipaddress

7. nftables Backend GA

kube-proxy performance has improved significantly.

bash
# nftables 백엔드 활성화
kubectl get configmap kube-proxy -n kube-system -o yaml
yaml
# kube-proxy ConfigMap 업데이트
apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-proxy
  namespace: kube-system
data:
  config.conf: |
    mode: "nftables"  # iptables 대신 nftables 사용

Performance improvements:

Kubernetes 1.32 "Penelope" (2024/12)

1. Memory Manager GA

Memory management is more sophisticated.

yaml
# kubelet 설정
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
memoryManagerPolicy: Static
reservedMemory:
- numaNode: 0
  limits:
    memory: "1Gi"
- numaNode: 1  
  limits:
    memory: "1Gi"

2. PVC Auto-Cleanup for StatefulSets

An automatic cleanup feature for preventing storage leaks.

yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: database
spec:
  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Delete    # StatefulSet 삭제 시 PVC도 삭제
    whenScaled: Retain     # 스케일 다운 시에는 유지

Assessing Practical Use in 2025

Recommended for immediate adoption (High Priority):

  1. Sidecar Containers GA: Consider replacing Istio
  2. Multiple Service CIDRs: Essential for clusters short of IP addresses
  3. nftables Backend: Improve performance at scale

Gradual adoption (Medium Priority):

  1. In-Place Pod Resize: Start with stateful workloads
  2. User Namespaces: Start with security-sensitive workloads
  3. Volume Populators: Applications needing data initialization

Evaluate in test environments (Low Priority):

  1. Streaming Lists: Check the effects in large clusters
  2. Memory Manager: Measure performance on NUMA systems

Roadmap for the Second Half of 2025 (Kubernetes 1.34+)

Major planned features:

🔄 Migration Guide

vSphere Environments

bash
# CSI 마이그레이션 확인
kubectl get csidriver vsphere.csi.vmware.com

Azure File Environments

bash
# CSI 마이그레이션 상태 확인
kubectl get storageclass

💡 Practical Checks

1. What to Check Immediately

bash
# 1. 이미지 레지스트리 확인 (가장 중요!)
kubectl get pods --all-namespaces -o jsonpath='{.items[*].spec.containers[*].image}' | tr ' ' '\n' | grep k8s.gcr.io | sort -u

# 결과가 있다면 즉시 수정 필요!
# registry.k8s.io로 변경해야 함

# 2. containerd 버전 확인
sudo containerd --version
# v1.6.0 미만이면 업그레이드 필수

# 3. 현재 쿠버네티스 버전 확인
kubectl version --short
# Client와 Server 버전 차이 확인

# 4. SeccompDefault 영향 확인
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.spec.securityContext.seccompProfile}{"\n"}{end}' | grep -v "null"

# 5. 폐기된 API 사용 확인
kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found

2. New Feature Checklist

Consider adopting ValidatingAdmissionPolicies:

bash
# 현재 OPA/Gatekeeper 사용 중인지 확인
kubectl get constrainttemplates
kubectl get configs.config.gatekeeper.sh

# 새로운 ValidatingAdmissionPolicy 테스트
kubectl apply -f - <<EOF
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: ValidatingAdmissionPolicy
metadata:
  name: test-policy
spec:
  failurePolicy: Warn  # 테스트 시에는 Warn 사용
  matchConstraints:
    resourceRules:
    - operations: ["CREATE"]
      apiGroups: [""]
      apiVersions: ["v1"]
      resources: ["pods"]
  validations:
  - expression: "has(object.metadata.labels['app'])"
    message: "Pod must have 'app' label"
EOF

Consider adopting sidecar containers:

bash
# 현재 사이드카 패턴 사용 중인 Pod 확인
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{len(.spec.containers)}{"\n"}{end}' | awk '$3 > 1'

# Istio 사용 여부 확인
kubectl get pods -n istio-system 2>/dev/null || echo "Istio not installed"

Analyze resource usage:

bash
# GPU 사용 Pod 확인
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.spec.containers[*].resources.limits.nvidia\.com/gpu}{"\n"}{end}' | grep -v "^.*\t$"

# 메모리 집약적 Pod 확인 (스왑 메모리 활용 후보)
kubectl top pods --all-namespaces | sort -k4 -h | tail -10

3. Upgrade Planning Considerations

Preparation checklist:

Required checks

  1. Container runtime Check for containerd 1.6.0+
  2. Image registry Change k8s.gcr.io → registry.k8s.io
  3. Security policy Review the effects of automatic SeccompDefault application
  4. Storage Confirm that CSI migration is complete

Performance optimization opportunities

bash
# 1. nftables 백엔드 도입 검토
kubectl get daemonset kube-proxy -n kube-system -o yaml | grep -A5 -B5 "proxy-mode"

# 2. 스케줄러 성능 모니터링
kubectl logs -n kube-system deployment/kube-scheduler | grep "scheduling_duration_seconds" | tail -5

# 3. etcd 상태 확인
sudo etcdctl --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key \
  endpoint health

Plans for using new features

4. Migration Priorities

High Priority (Apply immediately)

  1. Change the image registry (k8s.gcr.io → registry.k8s.io)
  2. Upgrade containerd (if < 1.6.0)
  3. Analyze SeccompDefault impact

Medium Priority (Within 3-6 months)

  1. Adopt ValidatingAdmissionPolicies
  2. Apply sidecar containers
  3. Test the nftables backend

Low Priority (Long-term plans)

  1. Apply dynamic resource allocation
  2. Consider swap memory usage
  3. Improve the Windows node environment

5. Performance Monitoring Points

bash
# 업그레이드 후 성능 비교를 위한 기준선 수집
echo "=== 현재 성능 기준선 수집 ==="

# 1. 스케줄링 지연 측정
kubectl logs -n kube-system deployment/kube-scheduler | grep "scheduling_duration_seconds" | tail -10

# 2. Pod 시작 시간 측정
kubectl get events --sort-by='.metadata.creationTimestamp' | grep "Started container" | tail -5

# 3. 이미지 풀 시간 측정  
kubectl get events --sort-by='.metadata.creationTimestamp' | grep "Pulling image" | tail -5

# 4. etcd 응답 시간 확인
time kubectl get nodes >/dev/null

# 5. API 서버 응답 시간
time kubectl get pods --all-namespaces >/dev/null

🎯 Conclusion

How Kubernetes Has Evolved Since 2022/11

Here is how Kubernetes has evolved since 2022/11.

  1. Stronger security: SeccompDefault GA, KMS v2 encryption, User Namespaces enabled by default
  2. Performance improvements: nftables backend GA, Streaming List responses, scheduler optimization
  3. New features: Sidecar Containers GA, ValidatingAdmissionPolicies, In-Place Pod Resize
  4. Operational convenience: Multiple Service CIDRs, Volume Populators GA, Memory Manager GA
  5. Platform expansion: Windows privileged containers, Linux swap support, AI/ML workload optimization

What Needs Immediate Action

Critical (Check right now):

bash
# 1. 이미지 레지스트리 체크 (Breaking Change!)
kubectl get pods --all-namespaces -o jsonpath='{.items[*].spec.containers[*].image}' | grep k8s.gcr.io

The image registry change is the most important point. If you operate an existing cluster, you must change from k8s.gcr.io to registry.k8s.io.

Important (Apply within 3 months):

Reflections as a CKA Holder

Compared with when I earned the CKA 2 and a half years ago, Kubernetes has evolved from "container orchestration" into an "enterprise cloud-native platform".

The most impressive changes as of 2025:

Next Steps

Here is a step-by-step action plan I recommend to readers.

This week (Week 1)

  1. Diagnose the current cluster state
  2. Identify where k8s.gcr.io is used
  3. Check the containerd version

This month (Month 1)

  1. Plan the image registry migration
  2. Set up a test environment for ValidatingAdmissionPolicies
  3. Collect a performance monitoring baseline

Quarterly

  1. Apply new features in production
  2. Measure performance optimization results
  3. Train the team and document the work

Tips for Continuous Learning

Learning methods you can use at work:

  1. Build an experimental cluster: Test new features safely
  2. Check official documentation regularly: Subscribe to the Kubernetes CHANGELOG
  3. Join the community: Attend CNCF events and Kubernetes SIG meetings
  4. Share best practices: Run knowledge-sharing sessions within the team

References

Official documentation and release notes:

Guides to major features in 2025:

Security and policies:

Performance optimization:

Coming next:

  1. Sidecar Containers GA guide - Migrating from Istio to native sidecars
  2. Using In-Place Pod Resize - Resource adjustments without downtime
  3. Large cluster optimization in 2025 - Applying Streaming List, nftables, and Multiple Service CIDRs

Scope of This Post

Research scope:

Practical applicability:

Diagram

100%

Drag to pan; pinch or use the wheel to zoom. Keyboard: arrow keys pan, + − zoom, 0 fits, Esc closes. The same content is in “Read the diagram as text” below the figure.