Modifying Resources¶
Scale a Deployment¶
Scale the Depoyment
metrics-server
using Deployment.scale()
in the Namespace kube-system
to 1
replica.
from kr8s.objects import Deployment
deploy = Deployment.get("metrics-server", namespace="kube-system")
deploy.scale(1)
from kr8s.asyncio.objects import Deployment
deploy = await Deployment.get("metrics-server", namespace="kube-system")
await deploy.scale(1)
Add Pod label¶
Add the label foo
with the value bar
to an existing Pod
using Pod.label()
.
from kr8s.objects import Pod
pod = Pod("kube-apiserver", namespace="kube-system")
pod.label({"foo": "bar"})
from kr8s.asyncio.objects import Pod
pod = await Pod("kube-apiserver", namespace="kube-system")
await pod.label({"foo": "bar"})
Replace all Pod labels¶
Using the JSON 6902 style patching replace all Pod
labels with {"patched": "true"}
using Pod.patch()
.
from kr8s.objects import Pod
pod = Pod("my-pod", namespace="kube-system")
pod.patch(
[{"op": "replace", "path": "/metadata/labels", "value": {"patched": "true"}}],
type="json",
)
from kr8s.asyncio.objects import Pod
pod = await Pod("my-pod", namespace="kube-system")
await pod.patch(
[{"op": "replace", "path": "/metadata/labels", "value": {"patched": "true"}}],
type="json",
)
Cordon a Node¶
Cordon a Node
to mark it as unschedulable with Node.cordon()
.
from kr8s.objects import Node
node = Node("k8s-node-1")
node.cordon()
from kr8s.asyncio.objects import Node
node = await Node("k8s-node-1")
await node.cordon()