c# - 删除 dotnet 应用程序中的 kubernetes pod
问题描述
在我的 dotnet 应用程序中,我需要监视活动,如果 10 分钟内没有活动,我应该杀死 kubernete pod。杀死进程将无法完成这项工作,无论如何在dotnet中杀死/删除一个pod?
解决方案
我假设您想使用 k8s 集群中的代码杀死 pod。查看dotnet core的kubernetes 客户端。您可以在正在运行的集群中使用集群配置。
// Load from the default kubeconfig on the machine.
var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
IKubernetes client = new Kubernetes(config);
var list = client.ListNamespacedPod("default");
之后,您可以列出 pod、服务等,并在需要时终止它们。
但是,请记住,为了读取本地集群配置和访问资源,您需要设置一个具有正确权限的服务帐户。
下面的示例有权列出服务,例如在 k8s 集群中。相应地根据您的情况进行调整。例如,将“服务”更改为“Pods”,并为您的逻辑分配正确的动词。
apiVersion: v1
kind: ServiceAccount
metadata:
name: service-discovery-account
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
namespace: default
name: service-discovery-service-reader
rules:
- apiGroups: [""]
resources: ["services"]
verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: service-discovery-service-reader
subjects:
- kind: ServiceAccount
# Reference to ServiceAccount kind's `metadata.name`
name: service-discovery-account
# Reference to ServiceAccount kind's `metadata.namespace`
namespace: default
roleRef:
kind: ClusterRole
name: service-discovery-service-reader
apiGroup: rbac.authorization.k8s.io
不要忘记将该服务帐户分配给部署,负责监控集群中的其他 pod:
apiVersion: apps/v1
kind: Deployment
metadata:
name: your-deployment-app
spec:
selector:
matchLabels:
app: your-deployment-app
template:
metadata:
labels:
app: your-deployment-app
spec:
serviceAccountName: service-discovery-account
containers:
推荐阅读
- passwords - how to find Bitnami hadoop appliance password?
- scala - call-by-name function is evaluated before invoke
- powershell - 在powershell中制作别名的最简单方法是什么?
- javascript - Keeping iframe/image ratio when resizing on height
- python - 要从 sftp 服务器下载文件夹,它会在本地目录中下载文件夹,但是当我给出特定的文件路径时,它会显示错误
- javascript - 按最大值对 Javascript 对象数组进行排序
- blazor - Blazor 错误:哈希算法必须是“sha256”、“sha384”或“sha512”之一,后跟“-”字符
- spring-boot - 如何更新jpa中加入的继承类型的子表
- postgresql - Postgres 在不同的选择查询中出现“缺少 FROM 子句条目”错误
- angular - DockerInDocker 构建 Angular 应用程序失败 - 没有这样的文件或目录