Kubernetes コンポーネントのデフォルトのサービス設定
クラスターの作成時に IBM Cloud® Kubernetes Service によって設定される Kubernetes コンポーネント (kube-apiserver、kubelet、kube-scheduler、kube-proxy など) のデフォルト設定を以下に記載します。
kube-apiserver
IBM Cloud Kubernetes Service の kube-apiserver マスター・コンポーネントのデフォルト設定を記載しています。
- デフォルト・ポッド容認
-
default-not-ready-toleration-seconds=600s -
default-unreachable-toleration-seconds=600s - 特権ポッド
-
allow-privileged=true - 要求ヘッダーと応答ヘッダー
-
strict-transport-security-directives="max-age=31536000"(Kubernetes バージョン 1.28 以降) -
requestheader-client-ca-file=/mnt/etc/kubernetes-cert/ca.pem -
requestheader-username-headers=X-Remote-User -
requestheader-group-headers=X-Remote-Group -
requestheader-extra-headers-prefix=X-Remote-Extra- - クライアント要求の数
-
max-requests-inflight=1600 -
max-mutating-requests-inflight=800 - アドミッション・コントローラー
-
ClusterTrustBundleAttest(Kubernetes バージョン 1.27 以降) -
ValidatingAdmissionPolicy(Kubernetes バージョン 1.27 以降) -
DefaultStorageClass -
NamespaceLifecycle -
LimitRanger -
ServiceAccount -
MutatingAdmissionWebhook -
ValidatingAdmissionWebhook -
ResourceQuota -
DefaultTolerationSeconds -
StorageObjectInUseProtection -
PersistentVolumeClaimResize -
Priority -
PodSecurity( Kubernetes バージョン 1.24ではオプション、バージョン 1.25 以降では有効) -
PodSecurityPolicy(Kubernetes バージョン 1.24 以前) -
NodeRestriction -
TaintNodesByCondition -
CertificateApproval -
CertificateSigningCertificateSubjectRestrictionDefaultIngressClassRuntimeClassDenyServiceExternalIPs
- 機能ゲート
-
機能ゲートを参照
- TLS 暗号サポート
-
TLS バージョン 1.2:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
-
TLS バージョン 1.3:
TLS_AES_128_GCM_SHA256TLS_CHACHA20_POLY1305_SHA256TLS_AES_256_GCM_SHA384
kube-controller-manager
IBM Cloud Kubernetes Service の kube-controller-manager マスター・コンポーネントのデフォルト設定を記載しています。
- Node モニター猶予期間
-
node-monitor-grace-period=55s(Kubernetes バージョン 1.28 以降) - 機能ゲート
-
機能ゲートを参照
- ポッドのガーベッジ・コレクションしきい値
-
terminated-pod-gc-threshold=12500 - TLS 暗号サポート
-
TLS バージョン 1.2:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
-
TLS バージョン 1.3:
TLS_AES_128_GCM_SHA256TLS_CHACHA20_POLY1305_SHA256TLS_AES_256_GCM_SHA384
kubelet
IBM Cloud Kubernetes Service の kubelet ワーカー・ノード・コンポーネントのデフォルト設定を記載しています。
imageMaximumGCAge: 336h (Kubernetes バージョン 1.31 以降)
imageGCHighThresholdPercent: 75 (Kubernetes バージョン 1.26 以降)
imageGCLowThresholdPercent: 65 (Kubernetes バージョン 1.26 以降)
kubeAPIQPS: 50 (Kubernetes バージョン 1.27 以降)
kubeAPIBurst: 100 (Kubernetes バージョン 1.27 以降)
eventBurst: 100 (Kubernetes バージョン 1.27 以降)
eventRecordQPS: 50 (Kubernetes バージョン 1.27 以降)
serializeImagePulls: false
registryPullQPS: 5
registryBurst: 5
- cgroups
kubeletCgroups: /podruntime/kubeletruntime-cgroups=/podruntime/runtime- コンテナー・ログ
containerLogMaxSize: 100MicontainerLogMaxFiles: 3- コンテナー・ランタイムのエンドポイント
containerRuntimeEndpoint: "unix:///run/containerd/containerd.sock"- CPU CFS 割り当て量
cpuCFSQuotaPeriod: 20ms- 機能ゲート
- 機能ゲートを参照。
- ファイル・チェックの頻度
fileCheckFrequency: 5s- 安全なノードのシャットダウン
shutdownGracePeriodCriticalPods: 15s- Kubernetes およびシステムの予約
kubeReserved calculated based on worker node flavorsystemReserved calculated based on worker node flavor
ポッドの強制除去
evictionSoft:
memory.available: "100Mi"
nodefs.available: "10%"
imagefs.available: "10%"
nodefs.inodesFree: "10%"
imagefs.inodesFree: "10%"
evictionSoftGracePeriod:
memory.available: "10m"
nodefs.available: "10m"
imagefs.available: "10m"
nodefs.inodesFree: "10m"
imagefs.inodesFree: "10m"
evictionHard:
memory.available: "100Mi"
nodefs.available: "5%"
imagefs.available: "5%"
nodefs.inodesFree: "5%"
imagefs.inodesFree: "5%"
- ポッドのマニフェスト・パス
-
staticPodPath: /etc/kubernetes/manifests - TLS 暗号サポート
-
TLS バージョン 1.2:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
-
TLS バージョン 1.3:
TLS_AES_128_GCM_SHA256TLS_CHACHA20_POLY1305_SHA256TLS_AES_256_GCM_SHA384
kube-scheduler
IBM Cloud Kubernetes Service の kube-scheduler ワーカー・ノード・コンポーネントのデフォルト設定を記載しています。
- TLS 暗号サポート
-
TLS バージョン 1.2:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
-
TLS バージョン 1.3:
TLS_AES_128_GCM_SHA256TLS_CHACHA20_POLY1305_SHA256TLS_AES_256_GCM_SHA384
kube-proxy
IBM Cloud Kubernetes Service の kube-proxy ワーカー・ノード・コンポーネントのデフォルト設定を記載しています。
- Iptable の設定
iptables-sync-period 120(Kubernetes バージョン 1.29 以降)iptables-min-sync-period 2s(Kubernetes バージョン 1.29 以降)iptables-sync-period 180s(Kubernetes バージョン 1.28)iptables-min-sync-period 3s(Kubernetes バージョン 1.28)iptables-sync-period 300s(Kubernetes バージョン 1.27 以前)iptables-min-sync-period 5s(Kubernetes バージョン 1.27 以前)iptables-localhost-nodeports false(Kubernetes バージョン 1.26 以降)- プロキシー・モード
proxy-mode=iptables- 機能ゲート
- 機能ゲートを参照
機能ゲート
IBM Cloud Kubernetes Service クラスターで、すべてのマスター・コンポーネントおよびワーカー・ノード・コンポーネントにデフォルトで適用される機能ゲートを記載しています。 これらの機能ゲートは、コミュニティーのディストリビューションにセットアップされているものとは異なります。 では Kubernetes、ほとんどの新規ベータ機能はデフォルトで無効化されています。 変更される可能性のあるアルファ版機能は、すべてのバージョンで無効化されています。
このコマンドを使用して、 kubectl get --raw /metrics | grep kubernetes_feature_enabled コマンドを使用して、機能ゲートが有効になっているか無効になっているかを判断することができます。
- 1.36
UnauthenticatedHTTP2DOSMitigation=true- 1.35
UnauthenticatedHTTP2DOSMitigation=trueDisableNodeKubeProxyVersion=false- 1.34
CustomCPUCFSQuotaPeriod=trueDisableNodeKubeProxyVersion=false- 1.33
CustomCPUCFSQuotaPeriod=trueDisableNodeKubeProxyVersion=false- 1.32
CustomCPUCFSQuotaPeriod=true- 1.31
CustomCPUCFSQuotaPeriod=trueStrictCostEnforcementForVAP=trueStrictCostEnforcementForWebhooks=true- 1.30
CustomCPUCFSQuotaPeriod=trueStrictCostEnforcementForVAP=trueStrictCostEnforcementForWebhooks=true