标签: kubernetes-pod

删除 pod 后,pod 停留在 ContainerCreating

我正在尝试使用以下命令强制删除来删除我的 Pod

kubectl 删除 pod my-pod-fg4ss --grace-period=0 --force

但我的 Pod 正在重新创建

my-pod-fg4ss 0/3 容器创建 0 2d3h

我无法删除 Pod

kubernetes kubernetes-pod

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

kubectl cp 从已完成的 pod 到本地计算机

我想使用 kubectl cp 将文件从已完成的 pod 复制到我的本地主机(本地计算机)。我使用了kubectl cp /:/,但是,它给了我一个错误:无法在已完成的 pod 中执行到容器中;当前阶段是成功错误。有没有办法从已完成的 Pod 中复制文件?它不需要是 kubectl cp。任何帮助表示赞赏!

kubernetes kubectl kubernetes-pod azure-aks

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

带脚本的 CMD 和 ENTRYPOINT,相同的 Dockerfile

尝试使用以下命令运行基于图像的 Pod Dockerfile

...

ENTRYPOINT [ "./mybashscript", ";", "flask" ]
CMD [ "run" ]
Run Code Online (Sandbox Code Playgroud)

我期望完整的命令是./mybashscript; flask run. 然而,在此示例中,pod/container执行./mybashscript,但 不执行flask

我还尝试了一些变体,例如:

...

ENTRYPOINT [ "/bin/bash", "-c", "./mybashscript && flask" ]
CMD [ "run" ]
Run Code Online (Sandbox Code Playgroud)

现在,flask被执行但run被忽略。

PS:我试图理解为什么这不起作用,并且我知道我可以将所有内容放入脚本中entrypoint或将所有内容放入bash脚本中,但这不是重点。

containers docker kubernetes dockerfile kubernetes-pod

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

如何将 /var/lib/kubelet/pods 下的 guid 映射到实际的 pod

我试图调试一些安装问题,安装日志将我引导到以下路径/var/lib/kubelet/pods,即

/var/lib/kubelet/pods/f6affad1-941d-4df1-a0b7-38e3f2ab99d5/volumes/kubernetes.io~nfs/my-pv-e0dbe341a6fe475c9029fb372e

如何将根目录的guid映射pods到实际运行的pod或容器?

f6affad1-941d-4df1-a0b7-38e3f2ab99d5在上面的例子中)

kubectl我没有看到与or返回的值有任何相关性crictl

kubernetes kubectl kubernetes-pod

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

kubernetes pod 高缓存内存使用率

我有一个在 k8s 上运行的 java 进程。

\n

我设置Xms和Xmx来处理。

\n
java -Xms512M -Xmx1G -XX:SurvivorRatio=8 -XX:NewRatio=6 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -jar automation.jar\n
Run Code Online (Sandbox Code Playgroud)\n

我的预期是 pod 应该消耗 1.5 或 2 GB 内存,但它消耗的内存更多,接近 3.5 GB。太多了。\n如果 \xc4\xb1 在虚拟机上运行我的进程,它消耗的内存要少得多。

\n

当 \xc4\xb1 检查 pod 的内存统计信息时,\xc4\xb1 表示 pod 分配了过多的缓存内存。

\n

RSS近1.5GB就可以了。因为Xmx是1gb。但为什么缓存近3GB。

\n

有什么方法可以调整或控制这种用法吗?

\n
/app $  cat /sys/fs/cgroup/memory/memory.stat\ncache 2881228800\nrss 1069154304\nrss_huge 446693376\nmapped_file 1060864\nswap 831488\npgpgin 1821674\npgpgout 966068\npgfault 467261\npgmajfault 47\ninactive_anon 532504576\nactive_anon 536588288\ninactive_file 426450944\nactive_file 2454777856\nunevictable 0\nhierarchical_memory_limit 16657932288\nhierarchical_memsw_limit 9223372036854771712\ntotal_cache 2881228800\ntotal_rss 1069154304\ntotal_rss_huge 446693376\ntotal_mapped_file 1060864\ntotal_swap 831488\ntotal_pgpgin 1821674\ntotal_pgpgout 966068\ntotal_pgfault 467261\ntotal_pgmajfault 47\ntotal_inactive_anon 532504576\ntotal_active_anon 536588288\ntotal_inactive_file 426450944\ntotal_active_file 2454777856\ntotal_unevictable 0\n
Run Code Online (Sandbox Code Playgroud)\n

memory jvm memory-leaks kubernetes kubernetes-pod

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

我对k8s中无头服务的理解以及两个需要验证的问题

我正在学习kubernetes的无头服务。

我毫无疑问地理解以下内容(如果我错了,请纠正我):

  • 无头服务没有集群 IP,
  • 它用于与有状态应用程序通信
  • 当客户端应用程序容器/pod 通过无头服务与数据库 pod 通信时,将返回 pod IP 地址而不是服务的 IP 地址。

我不太确定的是:

  • 在我看来,互联网上许多解释无头服务的文章都很模糊。因为我发现的所有内容都只是直接陈述如下:

如果你不需要负载均衡,但想直接连接到pod(例如数据库),你可以使用headless服务

但这到底是什么意思呢?

因此,以下是我对 k8s 中无头服务的想法以及两个带有示例的问题

假设我在一个服务后面有 3 个 PostgreSQL 数据库实例的副本,如果它是一个常规服务,我知道默认情况下对数据库的请求将以循环方式路由到三个数据库 Pod 之一。这确实是一个负载平衡。

问题一:

如果使用无头服务,上面引用的语句是否意味着无头服务将坚持使用三个数据库 pod 之一,并且永远不会更改,直到 pod 死亡?我问这个问题是因为否则如果不坚持使用三个 Pod 之一,它仍然会进行负载平衡。有人可以澄清一下吗?

问题2:

我觉得无论是常规服务还是无头服务,客户端应用程序只需要知道服务的 DNS 名称即可与 k8s 集群中的数据库进行通信。不是这样吗?我的意思是,那么使用无头服务有什么意义呢?对我来说,只有当客户端应用程序代码确实需要知道它所连接的 Pod 的 IP 地址时,无头服务才有意义。因此,只要客户端应用程序不需要知道 IP 地址,它始终可以通过集群中的服务 DNS 名称通过常规服务或无头服务与数据库进行通信,我在吗?

kubernetes kubernetes-pod kubernetes-service

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

即使使用率低于阈值,Kubernetes 部署也不会缩减

我\xe2\x80\x99m 很难理解我的水平 Pod 自动缩放器发生了什么\xe2\x80\x99s。

\n\n

如果内存或 CPU 使用率超过 80%,I\xe2\x80\x99m 会尝试扩展我的部署。

\n\n

这里\xe2\x80\x99是我的HPA模板:

\n\n
apiVersion: autoscaling/v2beta2\nkind: HorizontalPodAutoscaler\nmetadata:\n  name: my-hpa\nspec:\n  scaleTargetRef:\n    apiVersion: apps/v1\n    kind: Deployment\n    name: my-deployment\n  minReplicas: 2\n  maxReplicas: 10\n  metrics:\n    - type: Resource\n      resource:\n        name: cpu\n        target:\n          type: Utilization\n          averageUtilization: 80\n    - type: Resource\n      resource:\n        name: memory\n        target:\n          type: Utilization\n          averageUtilization: 80\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题是,尽管使用率低于 80%,但它\xe2\x80\x99 已经在 3 个副本上呆了好几天了,而且我不\xe2\x80\x99 不明白为什么。

\n\n
$ kubectl get hpa --all-namespaces\n\nNAMESPACE        NAME             REFERENCE                  TARGETS            MINPODS   MAXPODS   REPLICAS   AGE\nmy-ns            my-hpa           Deployment/my-deployment   61%/80%, 14%/80%   2         10        3          2d15h\n …
Run Code Online (Sandbox Code Playgroud)

autoscaling kubernetes kubernetes-pod horizontal-pod-autoscaling

0
推荐指数
1
解决办法
4571
查看次数

获取未运行的 Kubernetes pod 的数量

我有这个命令来列出Kubernetes没有运行的pod:

sudo kubectl get pods -n my-name-space | grep -v Running
Run Code Online (Sandbox Code Playgroud)

是否有一个命令可以返回未运行的 Pod 计数?

kubernetes kubernetes-pod

0
推荐指数
1
解决办法
784
查看次数

Why does Kubernetes report: "configmap references non-existent config key"?

In Kubernetes I create a configmap using:

kubectl create configmap dd-agent-config --from-file=./kubernetes/datadog/configmap.yaml

configmap.yaml:

kind: ConfigMap
apiVersion: v1
metadata:
  name: dd-agent-config
  namespace: default
data:
  etcd: |-
    ad_identifiers:
      - etcd
    init_config:
    instances:
      - prometheus_url: "http://%%host%%:2379/metrics"
        ssl_cert: "/etc/kubernetes/pki/etcd/peer.crt"
        ssl_private_key: "/etc/kubernetes/pki/etcd/peer.key"
        ssl_ca_cert: "/etc/kubernetes/pki/etcd/ca.crt"
Run Code Online (Sandbox Code Playgroud)

The description of the configmap loaded in Kubernetes:

$ kubectl describe configmap dd-agent-config               
Name:         dd-agent-config
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
configmap.yaml:
----
kind: ConfigMap
apiVersion: v1
metadata:
  name: dd-agent-config
  namespace: default
data:
  etcd: |-
    ad_identifiers:
      - etcd
    init_config: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-pod configmap

0
推荐指数
1
解决办法
6053
查看次数

一个 Pod 中可以运行的最大容器数是多少?

我知道一个 pod 可以有多个容器。但是,我试图找出一个 pod 内的容器数量是否有最大限制。我用谷歌搜索,但找不到答案。

kubernetes kubernetes-pod

0
推荐指数
1
解决办法
156
查看次数

如何从 k3s pod 中提取 ACR 映像

我已经自定义了 coredns 映像并将其推送到我的 azure 容器注册表 (ACR)。
现在,在安装 k3s 之后出现的默认 coredns pod 中,我想使用my_azure_acr_repo/proj/customize-coredns:latestimage而不是 rancher/coredns-coredns:1.8.3. 因此,我编辑了 coredns 部署kubectl edit deploy coredns -n kube-system,并将我的 acr 映像替换为 rancher one。但现在 coredns pod 无法提取我的 acr 映像并在 pod 描述中给出错误:

Failed to pull image "my_azure_acr_repo/proj/customize-coredns:latest": rpc error:
code = Unknown desc = failed to pull and unpack image "my_azure_acr_repo/proj/customize-coredns:latest": 
failed to resolve reference "my_azure_acr_repo/proj/customize-coredns:latest": failed to 
authorize: failed to fetch anonymous token: unexpected status: 401 Unauthorized
Run Code Online (Sandbox Code Playgroud)

如何验证 acr 映像,以便 pod 拉取它?

kubernetes azure-container-registry coredns kubernetes-pod

0
推荐指数
1
解决办法
821
查看次数

当 kubernetes readiness-probe 返回 false 时会发生什么?要等多久?

当 Kubernetes 返回 false 时会发生什么readiness-probe?超时后 Kubernetes 是否会重新启动该 pod?Kubernetes 等待准备就绪需要多长时间?

kubernetes kubernetes-pod readinessprobe

0
推荐指数
1
解决办法
2753
查看次数