标签: kubernetes-pod

无法删除 Kubernetes 中的所有 Pod - 清除/重启 Kubernetes

我正在尝试删除/删除我的环境中运行的所有 Pod。当我发出

码头工人

我得到以下输出。这是一个示例屏幕截图。可以看到,都是K8。我想删除所有 Pod/删除它们。

在此输入图像描述

我尝试了以下所有方法,但它们不断出现

sudo kubectl delete --all pods --namespace=default/kube-public #returns "no resources found" for both default and kube-public namespaces
sudo kubectl delete --all pods --namespace=kube-system # shows "pod xxx deleted"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

sudo kubectl get deployments # returns no resources found
Run Code Online (Sandbox Code Playgroud)

除了上述之外,我还尝试使用docker stopdocker rm与容器 ID,但它们要么重生。我想把它们全部清除。我想从头开始

我已注销并重新登录多次,但我仍然看到这些项目。

你能帮我删除所有 pod,并且我希望“docker ps”的输出没有任何与 kubernetes 相关的项目,如上所示?

docker kubernetes google-kubernetes-engine kubernetes-helm kubernetes-pod

2
推荐指数
1
解决办法
2095
查看次数

如何为 livenessProbe/readinessProbe 定义 Pod 健康检查端口

如何定义不同的 Pod 端口,一个用于应用程序,另一个用于运行状况检查 (readinessProbe)?

如下所示的端口规范是否是使 readinessProbe 检查运行状况检查端口 TCP/9090 的正确方法?我的意思是,readinessProbe 是否会到达端口 9090(当然假设它是由正在运行的容器打开的)?或者是否需要指定任何其他端口(nodePort、targetPort、端口等)?

kind: Deployment
spec:
  template:
    spec:
      containers:
      - name: myapp
        image: <image>
        ports:
        - name: myapp-port
          containerPort: 8080
          protocol: TCP
        - name: healthcheck-port
          containerPort: 9090
          protocol: TCP

        readinessProbe:
          httpGet:
            port: healthcheck-port
            scheme: HTTP
          initialDelaySeconds: 60
          timeoutSeconds: 5
          periodSeconds: 10
          successThreshold: 2
          failureThreshold: 2
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-health-check kubernetes-pod

2
推荐指数
1
解决办法
1万
查看次数

节点间的 Pod 到 Pod 通信是不可能的...为什么?

我是 k8s 的新手,但我知道,作为 k8s 的要求,每个 Pod 都应该可以从任何其他 Pod 访问。然而,这在我的设置中没有发生:我无法从一个 Pod 内 ping 另一个节点中的另一个 Pod。

这是我的设置:

我有一个主节点(sauron)和三个工作节点(gothmog, angmar, khamul)。我已经weave通过以下方式安装了网络:

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
Run Code Online (Sandbox Code Playgroud)

这是输出kubectl get pods -n kube-system -o wide

NAME                             READY   STATUS    RESTARTS   AGE    IP                NODE      NOMINATED NODE   READINESS GATES
coredns-5644d7b6d9-bd5qn         1/1     Running   1          59d    10.38.0.2         angmar    <none>           <none>
etcd-sauron                      1/1     Running   44         145d   192.168.201.207   sauron    <none>           <none>
kube-apiserver-sauron            1/1     Running   82         145d   192.168.201.207 …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-pod kubernetes-networking

2
推荐指数
1
解决办法
1504
查看次数

如何防止 pod 在同一命名空间中挂载机密?

我的命名空间包含多个秘密和 Pod。使用部署规范将机密作为卷选择性地安装在 pod 上。是否可以拒绝将特定机密作为卷安装在某些 Pod 中。我已经测试了 RBAC,它可以防止 pod 通过 api 访问机密。考虑到允许所有机密安装在同一命名空间的 Pod 中存在安全风险,是否有类似的安装机密机制。

rbac kubernetes kubernetes-pod

2
推荐指数
2
解决办法
737
查看次数

Python kubernetes pod 监视状态

当 pod 改变状态时,我还没有成功获取它的实际状态。从我下面的代码来看,它陷入了困境,waiting并且在我的终端中ContainerCreating陷入了无限循环。

    for event in watch.stream(func=v1.list_namespaced_pod, namespace=ns, timeout_seconds=120):
      response = event['object'].status
      pod_data = {
          "name": data.container_statuses[0].name,
          "status": data.container_statuses[0].state,
          "phase": data.phase,
      }
      if f'{pod_name}' in data[0]['name']:
        running = data[0]['status'].running
        wait = data[0]['status'].waiting
        while wait != None:
          print(f"waiting for {pod_name} state to Running...")
          print(wait.reason)
          time.sleep(10)
        if running.started_at != None:
          print("State has changed to Running. Pod has been created and started... ' ")
          watch.stop()
Run Code Online (Sandbox Code Playgroud)

获取 Pod 当前状态的最佳方法是什么?我有一个复制操作,当状态从 更改Pending为 时会触发该操作Running

ContainerCreating
ContainerCreating
ContainerCreating
ContainerCreating
ContainerCreating …
Run Code Online (Sandbox Code Playgroud)

python kubernetes-pod azure-aks

2
推荐指数
1
解决办法
8643
查看次数

我可以强制 Kubernetes 不要在同一节点中运行超过 X 个 pod 副本吗?

我有一个小型 Kubernetes 集群,仅包含两个在t3a.microAWS EC2 实例上运行的节点(为了省钱)。

我有一个小型网络应用程序,我试图在这个集群中运行。我有一个Deployment这个应用程序的单曲。此部署已spec.replicas设置为 4。

当我运行此命令时Deployment,我注意到 Kubernetes 在一个节点中调度了 3 个 pod,在另一个节点中调度了 1 个 pod。

是否可以强制 Kubernetes 每个节点最多调度 2 个 pod Deployment?在同一个 Pod 中拥有 3 个实例,这些小型 EC2 实例的内存几乎耗尽。

谢谢!

kubernetes kubernetes-deployment kubernetes-pod

2
推荐指数
1
解决办法
1694
查看次数

Pod 仍然是 ContainerCreating。networkPlugin cni 无法设置 pod netplugin 失败,没有错误消息

我正在尝试在具有一个主节点和两个工作节点的 K8s 集群上创建部署。该集群在 3 个 AWS EC2 实例上运行并使用 weave 网络。

[root@master ~]# export kubever=$(kubectl version | base64 | tr -d '\n')
[root@master ~]# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
Run Code Online (Sandbox Code Playgroud)
[root@master ~]# kubectl get pods
NAME                    READY   STATUS              RESTARTS   AGE
nginx-f89759699-7vscl   0/1     ContainerCreating   0          36m

Run Code Online (Sandbox Code Playgroud)

kubectl 描述 pod nginx -n mounika

Name:           nginx-f89759699-7vscl
Namespace:      mounika
Priority:       0
Node:           worker2/172.31.57.238
Start Time:     Sun, 31 May 2020 01:58:15 +0000
Labels:         app=nginx
                pod-template-hash=f89759699
Annotations:    <none>
Status:         Pending
IP:
IPs:            <none>
Controlled By:  ReplicaSet/nginx-f89759699
Containers:
  nginx:
    Container …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-pod

2
推荐指数
1
解决办法
7796
查看次数

cronjob 在 AWS EKS 集群中使用 UTC 时区运行

我正在 kubernetes 集群上运行多个 cronjobs,并希望它们在 EDT 时区 America/New_York 上运行。我想知道如何确保我的作业在特定的 EDT 时间运行。目前,所有这些作业都以 UTC 时区运行。

  • POD 图像已经过验证,它们都有 EDT 时区
  • 可以通过转到每个主机/容器来手动设置时区

有人建议寻找 kubernetes 控制器并在该特定主机/容器上设置时区。如果有人能阐明的话,我将不胜感激

A。如何找到 kubernetes 管理控制器?b. 如何通过命令行或 yaml 文件在容器上自动设置时区

timezone kubernetes kubernetes-pod amazon-eks

2
推荐指数
1
解决办法
5110
查看次数

如何指定由 config.load_incluster_config() 从 kubernetes python sdk 获取的 ServiceAccount

我有一个具有多个 ServiceAccounts 的环境,并且 pod 可以使用 kubernetes python sdk 访问 Kubernetes api。函数 load_incluster_config() 选择哪个帐户。有什么方法可以指定要选择的帐户吗?我发现我的 pod 总是选择名为 ServiceAccount 的“默认”。

openshift kubernetes kubectl kubernetes-python-client kubernetes-pod

2
推荐指数
1
解决办法
1347
查看次数

循环获取 Kubernetes Pod 的日志

我有兴趣获取名称中包含“test”但使用 json 和 jq 的多个 pod 的日志。第一步是找出包含该特定字符串的名称 - 在我的例子中是“test”:

kubectl get pods -n test -o json | jq '.items[] | select(.metadata.name|test("test"))| .metadata.name'
Run Code Online (Sandbox Code Playgroud)

我在 Stackoverflow 上某人的帮助下得到了这个答案。

现在我想找出获取每个包含“test”名称的 pod 日志的命令。我想要类似以下命令的命令,但不幸的是这种方式不起作用,因为我猜第一个命令会在多行中一次返回所有 pod:

kubectl logs ``kubectl get pods -n test -o json | jq '.items[] | select(.metadata.name|test("test"))| .metadata.name'`` -n test
Run Code Online (Sandbox Code Playgroud)

有什么方法可以通过一些额外的参数以这种方式获取日志以使其工作吗?

谢谢。

loops kubernetes kubernetes-pod

2
推荐指数
1
解决办法
6498
查看次数