惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Last Watchdog
The Last Watchdog
博客园_首页
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
美团技术团队
小众软件
小众软件
V
V2EX
博客园 - Franky
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
The GitHub Blog
The GitHub Blog
Microsoft Security Blog
Microsoft Security Blog
Attack and Defense Labs
Attack and Defense Labs
S
Security Affairs
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
T
The Exploit Database - CXSecurity.com
有赞技术团队
有赞技术团队
S
Schneier on Security
人人都是产品经理
人人都是产品经理
Security Archives - TechRepublic
Security Archives - TechRepublic
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
PCI Perspectives
PCI Perspectives
AI
AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
O
OpenAI News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The Register - Security
The Register - Security
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
博客园 - 【当耐特】
C
Cisco Blogs
大猫的无限游戏
大猫的无限游戏
Help Net Security
Help Net Security
Google DeepMind News
Google DeepMind News
S
Securelist
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Proofpoint News Feed
博客园 - 三生石上(FineUI控件)
雷峰网
雷峰网
L
LangChain Blog
SecWiki News
SecWiki News
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V2EX - 技术
V2EX - 技术
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
L
LINUX DO - 热门话题
Cisco Talos Blog
Cisco Talos Blog

Sysdig Blog

Masterclass: AI is more than ChatGPT and LLMs CVE-2026-39987 update: How attackers weaponized marimo to deploy a blockchain botnet via HuggingFace Kubernetes 1.36 - New security features 5 steps to securing AI workloads Marimo OSS Python Notebook RCE: From Disclosure to Exploitation in Under 10 Hours Security briefing: March 2026 The Sysdig MCP server is now available in AWS Marketplace Risk isn’t reduced until you take action: How teams resolve issues in the cloud AI infrastructure security: Why it deserves its own category Three pillars for building effective runtime-powered cloud defense, the right way Closing the cloud security gap with runtime security Seeing risk isn’t stopping it: Why visibility alone isn’t enough TeamPCP expands: Supply chain compromise spreads from Trivy to Checkmarx GitHub Actions AI coding agents are running on your machines — Do you know what they're doing? Runtime security for AI coding agents: Protecting AI-assisted development How runtime insights power every cloud security use case CVE-2026-33017: How attackers compromised Langflow AI pipelines in 20 hours Inline Cloud Response: Accelerating AWS threat containment for SOC teams Runtime malware detection for AWS Fargate Detecting CVE-2026-3288 & CVE-2026-24512: Ingress-nginx configuration injection vulnerabilities for Kubernetes Malware detection with Sysdig Security briefing: February 2026 Leveling up Kubernetes Posture: From baselines to risk-aware admission Eliminating runtime blind spots: How CleanStart and Sysdig build continuous trust across the container lifecycle LLMjacking: From Emerging Threat to Black Market Reality Real risks live at runtime: Why CISOs must care about deep telemetry in 2026 Sysdig named a Leader in the Forrester Wave™: Cloud Native Application Protection Solutions, Q1 2026 How to run rootless containers AI-assisted cloud intrusion achieves admin access in 8 minutes Security briefing: January 2026 Securing GPU-accelerated AI workloads in Oracle Kubernetes Engine Bringing OSS runtime security to AWS: Falco integration with AWS Security Hub CSPM Our customers have spoken: Sysdig rated a Strong Performer in Gartner® Voice of the Customer for Cloud-Native Application Protection Platforms Protecting sensitive business data in preparation for the organization's Gen AI VoidLink threat analysis: Sysdig discovers C2-compiled kernel rootkits AI is still a workload: A practical guide to securing AI workloads How threat actors are using self-hosted GitHub Actions runners as backdoors How Sysdig Sage delivers AI-powered, real-world vulnerability management Security briefing: December 2025 Top 10 ways to get breached in 2026 EtherRAT dissected: How a React2Shell implant delivers 5 payloads through blockchain C2 Introducing runtime file integrity monitoring and response with Sysdig FIM How to detect multi-stage attacks with runtime behavioral analytics EtherRAT: DPRK uses novel Ethereum implant in React2Shell attacks Detecting React2Shell: The maximum-severity RCE vulnerability affecting React Server Components and Next.js The rise of AI agents: How autonomous AI Is transforming cloud security The Urgency of Securing AI Workloads for CISOs Security briefing: November 2025 Quantum and the cloud: Science fiction turned security strategy Cloud security, the right way: What the industry should demand (and why "good enough" isn't) Return of the Shai-Hulud worm affects over 25,000 GitHub repositories Detecting CVE-2024-1086: The decade-old Linux kernel vulnerability that’s being actively exploited in ransomware campaigns What’s old is new again: How to demystify AI security with AIBOMs Securing Kubernetes with agentic cloud security How agentic cloud security reduces real risks Hunting reverse shells: How the Sysdig Threat Research Team builds smarter detection rules Shifting left with AI and MCP: Sysdig + Amazon Q Developer How Falco and Stratoshark close the gap between open source runtime detection and deep forensic analysis Investigating security issues with ChatGPT and the GitHub MCP server New runc vulnerabilities allow container escape: CVE-2025-31133, CVE-2025-52565, CVE-2025-52881 Harden your LLM security with OWASP Security briefing: October 2025 How agentic AI is changing cloud security Kubernetes Incident Response: Detect, investigate, and contain in under 10 minutes Sysdig recognized as a Cloud Security Leader in Latio Tech Cloud Security Market Report AI echolocation of cloud risks using Sysdig & Snyk MCP servers Sysdig MCP Server: Bridging AI and cloud security insights Understanding CVE-2025-49844: “RediShell” Critical Remote Code Execution in Redis How Sysdig secures your containers and Kubernetes Sysdig Security Briefing: September 2025 Cloud security, the right way: The 3 pillars of real-time defense Open source spotlight: Bringing web application security to Falco with Falcoya's Nginx plugin Malicious NPM packages: Are you exposed? AI for SOC teams: 5 cloud security prompts to start your day with Sysdig Sage™ Shai-Hulud: The novel self-replicating worm infecting hundreds of NPM packages ZynorRAT technical analysis: Reverse engineering a novel, Turkish Go-based RAT Modern vulnerability management, built for the cloud Build your AWS incident response playbook with open source tools 2025 Gartner® CNAPP Market Guide: Runtime visibility is no longer optional Threat hunting with Sysdig: Uncovering “IngressNightmare” Open source spotlight: From alerts to action with AI-powered Falco Vanguard From triage to action: How Sysdig’s agentic cloud security platform slashes noise and accelerates remediation The vision comes to life: Agentic cloud security with Sysdig Sage™ Data security findings: A technical deep dive Connecting runtime to source: Sysdig and Semgrep integration Fix what matters, faster: How Sysdig and Semgrep are unifying security without silos – from code to runtime Defending sensitive data with Sysdig Secure Redefining cloud security, the right way Join the movement: The Sysdig Open Source Community is live A smarter, safer cloud in the age of AI Unifying detection and response: Sysdig + Cortex XSOAR for security at cloud speed The future of security is open, and it needs a unified hub: The Sysdig Open Source Community is here CVE-2025-53104: Command injection via GitHub Actions workflow in gluestack-ui Why MCP server security is critical for AI-driven enterprises What’s new in Sysdig — June 2025 AI-powered CNAPP with Sysdig Sage™ Revolutionizing Cybersecurity Search with Sysdig Sage™ Sysdig Threat Bulletin: Iranian Cyber Threats The end of the prioritization-only era: Vulnerability management needs action Dangerous by default: Insecure GitHub Actions found in MITRE, Splunk, and other open source repositories
Kubernetes 1.35 - New security features
Víctor Jiménez Cerrada · 2025-12-02 · via Sysdig Blog

Kubernetes 1.35 will be released soon, bringing 17 changes to its security features.

It includes new validations, the deprecation of old technologies, and broader support for user namespaces, to name a few.

Let’s dig in!

Changes in Kubernetes 1.35 that may break things

#5573 Remove cgroup v1 support

SIG group: sig-node
Stage: Net New to Beta
Kubelet Configuration:
failCgroupV1 Default: true

The cgroups feature in the Linux Kernel is the foundation for both container isolation and resource quotas. Kubernetes relies on this feature for many of its internal workings.

It’s been about a decade since cgroups v2 was available, providing enhanced resource management and isolation. So it’s finally time to drop support for its original version.

⚠️ Starting with Kubernetes 1.35, support for cgroups v1 is disabled by default. It is a first step before completely deprecating and removing this support altogether.

✅ Check if your Linux server is using cgroups v2 before upgrading to Kubernetes 1.35:

$ stat -fc %T /sys/fs/
cgroup/cgroup2fs

#2535 Ensure secret pulled images

SIG group: sig-node
Stage: Major Change to Beta
Feature Gate:
KubeletEnsureSecretPulledImages Default: true

Up until now, checking if a Pod is authorized to access an image has been done only when the image is pulled. This means that if one image has already been pulled, a Pod may access it even without the proper permissions.

There is a workaround. Setting ImagePullPolicy to Always indirectly forces the kubelet to perform a verification against the registry. However, this workaround is neither intuitive nor watertight.

This enhancement adds the field imagePullCredentialsVerificationPolicy so cluster admins can define when these authorization verifications should take place.

ℹ️ This kind of extra verification is mandatory for multi-tenant clusters, where Pods from some users should never be able to access someone else’s images. The fact that this configuration exists and can be misconfigured is another reason you shouldn’t include any sensitive information in your container images.

You can keep the current behavior of not performing checks with NeverVerify. Use NeverVerifyAllowlistedImages to allow the images listed in preloadedImagesVerificationAllowlist, or AlwaysVerify to, as the name says, always require a credential re-verification.

⚠️ The new default value is NeverVerifyPreloadedImages, which won’t apply extra verifications to:

  • Images pulled outside the kubelet.
  • Images pulled by the kubelet while this feature was disabled.

However, it will perform checks on new pulls, which can cause some workloads to break due to pod creation failures.

⚠️ This feature will also cause an increase in image pulls.

✅ Prepare in advance, ensuring your Pods have the credentials to pull all the images they need. You can temporarily disable the feature gate or set the pull policy to NeverVerify until everything is fixed.

✅ Review your monitoring thresholds around pulls so you won’t get alerted unnecessarily. Check the metrics for pod creation failures to identify whether your pods are systemically experiencing credential issues.

#4006 Transition from SPDY to WebSockets

SIG group: sig-api-machinery
Stage: Graduating to Stable
Feature Gate:
KUBECTL_REMOTE_COMMAND_WEBSOCKETS Default: true
Feature Gate: TranslateStreamCloseWebsocketRequests Default:true
Feature Gate: KUBECTL_PORT_FORWARD_WEBSOCKETS Default: true
Feature Gate: PortForwardWebsockets Default:true
Feature Gate: AuthorizePodWebsocketUpgradeCreatePermission Default: true

Remember the web back in 2009? The term “Web 2.0” was trending, and Google Wave excited us with promises of a truly interactive web experience. To support this paradigm shift, Google proposed replacing HTTP/1.x with its newly developed SPDY protocol. It was so popular that it became the basis for HTTP/2.

A lot has happened since. The flashy Web 2.0 is now referred to as the old HTML 5, and WebSockets in HTTP/2 have long surpassed the now-obsolete SPDY in capabilities. However, the Kubernetes CLI tool still relies on SPDY.

However, this transition has some security implications. The WebSocket specification allows connections to be upgraded from GET to POST, since all connections must start using the GET method. This means that read-only users could escalate permissions to run commands like kubectl exec.

⚠️ To prevent this privilege escalation, the API server will now require that users have permissions for the create verb whenever a connection upgrade is requested.

✅  Review your RBAC policies before upgrading to Kubernetes 1.35 to ensure that the create permission is granted to those users who need it. You’ll also be able to temporarily disable this new permissions check by setting the AuthorizePodWebsocketUpgradeCreatePermission feature gate to false.

Read more about this new check in the KEP, and more details about the implementation in kubectl in our “Kubernetes 1.31 - What’s New?” article.

#4872 Harden Kubelet serving certificate validation in kube-API server

SIG group: sig-auth
Stage: Net New to Alpha
Feature Gate:
KubeletCertCNValidation Default: false
kube-apiserver flags: --enable-kubelet-cert-cn-validation, --kubelet-certificate-authority.

There is a security gap in the current API server certificate validation process that could allow:

  • An attacker with access to an old node,
  • Where that node has a still valid certificate,
  • To configure that old node’s IP to match a new node’s IP (via ARP poisoning or other routing attacks),
  • And use that certificate to impersonate the new node against the API server,
  • Managing to reroute traffic to itself.

It’s not an easy attack, but it’s feasible in cloud environments where machines change faster than their certificates expire.

⚠️ One of the things the API server will do to prevent this from happening is to require the Common Name (CN) of the kubelet's serving certificate to be equal to system:node:<nodename>. In this case, nodename is the name of the Node object as reported by the kubelet.

✅  Before enabling this feature, ensure that all the kubelet’s certificates comply with this requirement. If your kubelets request certificates via a CSR, you’ll be fine, since they were already created that way. However, you’ll need to reissue any non-conforming certificates that you may have created manually or through another mechanism.

ℹ️ There won’t be documentation for this feature in Kubernetes 1.35 as it’s still a work in progress, but you can check more details in the KEP and start preparing for the future.

Net new enhancements in Kubernetes 1.35

#5284 Constrained impersonation

SIG group: sig-auth
Stage: Net New to Alpha
Feature Gate:
ConstrainedImpersonation Default: false

The user impersonation mechanism in Kubernetes allows a user to act as another user.

This is useful, for example, for an admin user debugging an authorization policy. While temporarily impersonating another user, admins can quickly submit requests as that user and check if they are denied.

However, the current mechanism also allows users to impersonate other users with more permissions. That’s why admins should be cautious when granting the impersonation permission.

The new constrained impersonation feature adds an extra check to limit users' permissions when impersonating. With ConstrainedImpersonation enabled, users won’t be able to perform any action while impersonating someone that they couldn’t perform on their own.

#4828 Flagz for Kubernetes components

SIG group: sig-instrumentation
Stage: Major Change to Alpha
Feature Gate:
ComponentFlagz Default: false

Similar to the statusZ page, the flagz endpoint provides runtime diagnostics for Kubernetes components. In particular, it will provide the command-line arguments that were used to start a component.

Cluster administrators can use this tool to ensure that all components are running with the expected configuration and that there are no deviations from security policies.

ℹ️ Read more in our “Kubernetes 1.32 - What’s New?” article.

#5607 Allow HostNetwork Pods to use user namespaces

SIG group: sig-node
Stage: Net New to Alpha
Feature Gate:
UserNamespacesHostNetworkSupport Default: false

Currently, if a service like the API server wants to access the host network stack directly by using hostNetwork: true, it must also use the host users via hostUsers: true.

This is a security risk because if a Pod running as root gets compromised, it’s also easy for the attacker to gain root access in the host.

With this enhancement, the API server will allow pods with hostNetwork: true and hostUsers: false, and Pods will be able to access the host network stack while maintaining the isolation provided by Kubernetes user namespaces.

⚠️ Keep in mind that your underlying container runtime must support this combination; otherwise, the Pod will remain stuck in the ContainerCreating state and report an exception event.

#5538 CSI driver opt-in for service account tokens via secrets field

SIG group: sig-storage
Stage: Net New to Alpha
Feature Gate:
CSIServiceAccountTokenSecrets Default: false

If you currently need to provide an account token to mount a volume, like a cloud bucket, that token is stored in VolumeContext alongside other non-sensitive information, like the pod name or the namespace.

This enhancement provides a new Secrets field designed to store this kind of sensitive data. The serviceAccountTokenInSecrets field will tell the CSI driver to find the tokens in the secrets field:

apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
  name: example-csi-driver
spec:
  # ... existing fields ...
  tokenRequests:
    - audience: "example.com"
      expirationSeconds: 3600
  # New field for opting into secrets delivery
  serviceAccountTokenInSecrets: true  # defaults to false 

⚠️ The API server will trigger a warning if a CSIDriver has the serviceAccountTokenInSecrets field set to false.

⚠️ Also, keep in mind that CSI driver developers must implement support for these new secrets.

Existing enhancements that will be enabled by default in Kubernetes 1.35

#4317 Pod Certificates

SIG group: sig-auth
Stage: Graduating to Beta
Feature Gate:
PodCertificateRequest Default: true

Back in Kubernetes 1.19, the certificate signing request API was graduated to stable, providing a simple mechanism for requesting and obtaining X.509 certificates.

However, there is no simple way to provide those certificates to your workloads.

This enhancement introduces:

  • The PodCertificateRequest API, a mechanism to issue certificates for Pods.
  • A PodCertificate volume source that instructs the kubelet to provision a certificate for the Pod.
apiVersion: v1
kind: Pod
metadata:
  namespace: default
  name: pod-certificates-example
spec:
  restartPolicy: OnFailure
  automountServiceAccountToken: false
  containers:
  - name: main
    volumeMounts:
    - name: spiffe-credentials
      mountPath: /run/workload-spiffe-credentials
  volumes:
  - name: spiffe-credentials
    projected:
      sources:
      - podCertificate:
          signerName: "row-major.net/spiffe"
          keyType: ED25519
          credentialBundlePath: credentialbundle.pem

This feature turns a burdensome, repetitive task into a breeze while making security easier to implement. What’s not to love?

#127 Support User Namespaces in pods

SIG group: sig-node
Stage: Graduating to Beta
Feature Gate:
UserNamespacesSupport Default: true

User namespaces increase Pod isolation by separating the user processes run as from the users in the host.

For example, this is useful for Pods that need to run as root. You can use user namespaces to run processes as root inside the Pod, while they are actually running as unprivileged in the host.

If such a Pod is compromised and the attacker manages to break out of the container, the impact will be limited, as they will run as an unprivileged user.

You can enable this feature by setting hostUsers: false in your Pod description.

ℹ️ Read more in our “Kubernetes 1.25 - What’s New?” article.

#4639 VolumeSource: OCI Artifact and/or Image

SIG group: sig-node
Stage: Graduating to Beta
Feature Gate:
ImageVolume Default: true

Kubernetes can now use OCI artifacts and images as volume sources.

This allows developers to separate binaries from configurations and other assets, simplifying deployments and enabling image reuse.

A simple use case would be web servers like nginx. To deploy a website, you currently have to base your image on nginx, then add all your assets on top of that. Doing this for all your websites creates a lot of duplication.

Now, all your website Pods can use the same base image (adapted to use image volumes), and deploy the configuration and web assets in a separate, minimal image.

The definition of these oci-volume is done as follows:

kind: Pod
metadata:
  name: example-pod
spec:
  volumes:
  - name: oci-volume
    image:
      reference: "example.com/my-image:latest"
      pullPolicy: IfNotPresent
  containers:
  - name: my-container
    image: busybox
    volumeMounts:
    - mountPath: /data
      name: oci-volume

⚠️ However, allowing to mount OCI images in this manner opens the door to potential attack vectors.

✅ Before you enable this feature, strengthen your security policies and don’t allow images to be mounted from untrusted registries or that contain runnable content. You may consider blocking Pods that define image volumes.

ℹ️ Read more in Kubernetes 1.33 - What’s new?.

#3104 Separate kubectl user preferences from cluster configs

SIG group: sig-cli
Stage: Graduating to Beta
Environment Variable:
KUBECTL_KUBERC Default: true

With the inclusion of a kuberc file (~/.kube/kuberc) in the Kubernetes CLI, users can cleanly separate cluster credentials and server configurations from user-specific preferences.

It is designed so that different configurations can be applied to different clients. For example, it can allow users to enforce delete confirmation in their local client, but not in their CI pipelines.

ℹ️ Since Kubernetes 1.35, a new credentialPluginPolicy field is available to limit which credential plugins can kubectl run.

Any kubeconfig file can define a users[n].exec.command field pointing to a “credential plugin” executable that kubeclt will run on your behalf. This is intended as a helper to authenticate to the cluster with external identity providers. However, this is also an attack vector, as these plugins can be any arbitrary executable that  kubectl will run without you noticing.

The credentialPluginPolicy field will AllowAll executables by default. You can set this field to DenyAll to prevent any executable from running. This setting is also helpful to make an inventory of plugins, as you’ll get an error message when kubectl tries to run them.

Finally, you can also set it to Allowlist, and then limit the permitted plugins to only those defined in credentialPluginAllowlist:

apiVersion: kubectl.config.k8s.io/v1beta1
kind: Preference
credentialPluginPolicy: Allowlist
credentialPluginAllowlist:
  - name: /usr/local/bin/cloudco-login
  - name: get-identity

ℹ️ Read more in our “Kubernetes 1.31 - What’s New?” article.

#5589 Remove gogo protobuf dependency for Kubernetes API types

SIG group: sig-api-machinery
Stage: Major Change to Stable

The Kubernetes API relies on gogo protobuf. However, this library was deprecated in 2021. As this poses a security risk, among other things, work is underway to remove this dependency.

This enhancement focuses on removing these dependencies from the Kubernetes API objects. Instead, the standard golang protobuf library will be used.

ℹ️ Check the implementation details in the KEP, or adventure into the PR.

#3331 Structured Authentication Config

SIG group: sig-auth
Stage: Graduating to Stable
Feature Gate:
StructuredAuthenticationConfiguration Default: true

Currently, you can configure the authentication for the API server using several command flags, like --oidc-issuer-url, --oidc-client-id or --oidc-username-claim.

This enhancement adds support to perform this configuration via a config file provided with the flag --authentication-config:

apiVersion: apiserver.config.k8s.io/v1
kind: AuthenticationConfiguration
jwt:
- issuer:
    url: <https://example.com> # Same as --oidc-issuer-url
    audiences:
    - my-app # Same as --oidc-client-id.
  claimMappings:
    username:
      expression: 'claims.username + ":external-user"'
    groups:
      expression: 'claims.roles.split(",")'
    uid:
      expression: 'claims.sub'
    extra:
    - key: 'example.com/tenant'
      valueExpression: 'claims.tenant'
  userValidationRules:
  - expression: "!user.username.startsWith('system:')"
    message: 'username cannot used reserved system: prefix'

The main goal behind this change is to gain more flexibility, allowing you to:

  • Update the configuration without restarting the server.
  • Define more than one audience claim.
  • Use expressions instead of exact matching.
  • Use more than one OIDC provider.

ℹ️ As a bonus, having this configuration in a structure file will make it easier to check for misconfigurations and security policy drifts.

⚠️ Keep in mind that the --authentication-config flag is incompatible with the old  --oidc-* command line arguments. The API server will report this as a misconfiguration and will exit immediately.

#859 Include kubectl command metadata in http request headers

SIG group: sig-cli
Stage: Graduating to Stable
Environment Variable:
KUBECTL_COMMAND_HEADERS Default: true

For some time, kubectl has been including additional HTTP headers in the requests to the API server. Now this feature is considered stable.

$ kubectl apply -f - -o yaml
Kubectl-Command: apply
Kubectl-Session: 67b540bf-d219-4868-abd8-b08c77fefeca

ℹ️ Being able to track all the commands executed in the same session provides context when investigating security incidents originating from kubectl commands.

ℹ️ Read more in Kubernetes 1.22 - What’s new?.

#3619 Fine-grained SupplementalGroups control

SIG group: sig-node
Stage: Graduating to Stable
Feature Gate:
SupplementalGroupsPolicy Default: true

Linux users may belong to several groups beyond their main one, defined in the /etc/group file:

$ id golo
uid=1000(golo) gid=1000(golo) groups=1000(golo),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),135(lxd),136(sambashare),137(vboxusers)

If a container image defines its own groups in the /etc/group file, by default, Kubernetes merges that with the groups information defined in the Pod.

ℹ️ This is dangerous, as a malicious container image could tailor the /etc/group file to escalate privileges.

This now-stable feature added a supplementalGroupsPolicy field in the pod definition. When set as Strict, as opposed to the default Merge, Kubernetes will ignore any groups configuration not defined in the Pod config:

apiVersion: v1
kind: Pod
metadata:
  name: strict-supplementalgroups-policy
spec:
  securityContext:
    runAsUser: 1000
    runAsGroup: 3000
    supplementalGroups: [4000]
    supplementalGroupsPolicy: Strict

ℹ️ Read more in the Kubernetes blog.

#3983 Add support for a drop-in kubelet configuration directory

SIG group: sig-node
Stage: Graduating to Stable
Config Flag:
--config-dir Default: ''

After several releases in beta, this feature is now considered stable.

Similar to other Linux tools, you can now define a drop-in (e.g., /etc/kubernetes/kubelet.conf.d) directory for the kubelet configuration.

You can check the effective kubelet configuration using kubectl proxy and the configz endpoint:

$ kubectl proxy
Starting to serve on 127.0.0.1:8001

$ curl -X GET <http://127.0.0.1:8001/api/v1/nodes/><node-name>/proxy/configz | jq .
{
  "kubeletconfig": {
    "enableServer": true,
    "staticPodPath": "/var/run/kubernetes/static-pods",

ℹ️ There’s a reason why this practice is so extended in Linux: it enhances transparency while keeping the configuration easier to maintain and less error-prone. For Kubernetes, it also helps support the best practices for configuration management in line with the OWASP Top 10 for Kubernetes.

ℹ️ Read more in Kubernetes 1.32 - What’s new?, or in the Kubernetes Docs.

Wrapping things up

If you liked this, you might want to check out our previous “What's new in Kubernetes” editions:

Get involved with the Kubernetes project: