标签: kubernetes

Kubernetes 停留在 ContainerCreating

运行创建后,我的 Kubernetes 集群中的一个 pod 卡在“ContainerCreating”上。如何查看此操作的日志以诊断其卡住的原因?kubectl logs似乎不起作用,因为容器需要处于非挂起状态。

kubernetes

186
推荐指数
3
解决办法
17万
查看次数

是否可以重新运行 kubernetes 作业?

我有以下 Kubernetes 作业配置:

---
apiVersion: batch/v1
kind: Job
metadata:
  name: dbload
  creationTimestamp: 
spec:
  template:
    metadata:
      name: dbload
    spec:
      containers:
      - name: dbload
        image: sdvl3prox001:7001/pbench/tdload
        command: ["/opt/pbench/loadTpcdsData.sh",  "qas0063", "dbc", "dbc", "1"]
      restartPolicy: Never
      imagePullSecrets: 
        - name: pbenchregkey
status: {}
Run Code Online (Sandbox Code Playgroud)

当我完成kubectl create -f dbload-deployment.yml --record这项工作并创建了一个 pod 时,Docker 容器运行完成,我得到以下状态:

$ kubectl get job dbload
NAME      DESIRED   SUCCESSFUL   AGE
dbload    1         1            1h
$ kubectl get pods -a
NAME           READY     STATUS      RESTARTS   AGE
dbload-0mk0d   0/1       Completed   0          1h
Run Code Online (Sandbox Code Playgroud)

这项工作是一次性交易,我需要能够重新运行它。如果我尝试使用kubectl create命令重新运行它,我会收到此错误 …

docker kubernetes

80
推荐指数
4
解决办法
7万
查看次数

为什么在 kubernetes 上禁用交换

从 Kubernetes 1.8 开始,我似乎需要在我的节点上禁用交换(或设置--fail-swap-onfalse)。

我找不到 Kubernetes 坚持禁用交换的技术原因。这是出于性能原因吗?安全原因?为什么没有记录这个原因?

swap kubernetes

56
推荐指数
3
解决办法
5万
查看次数

如何判断 kubernetes 集群中的容器何时/是否/为什么重启?

我在 google 容器引擎中有一个单节点 kubernetes 集群可以玩。

现在,我托管的一个小型个人网站已经离线了几分钟。当我查看容器的日志时,我看到最近完成的正常启动序列,因此我假设一个容器死亡(或被杀死?)并重新启动。

我怎样才能弄清楚发生这种情况的方式和原因?

有没有办法在容器意外启动/停止时收到警报?

kubernetes

46
推荐指数
4
解决办法
5万
查看次数

创建部署时使用的规范 - 选择器 - 匹配标签是什么?

来自Kubernetes 文档

selector 字段定义了 Deployment 如何找到要管理的 Pod。

但是,在创建部署时,我已经将 pod 模板指定为部署的一部分。那么,为什么我还需要选择器呢?

它是否应该像服务一样使用,其中 pod 已经单独启动,但后来被置于 Deployment 的保护伞下以一起管理?

kubernetes

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

在没有负载均衡器的情况下在 Google Container Engine 上公开端口 80 和 443

目前我正在做一个小型的爱好项目,一旦它准备好,我就会开源。此服务在 Google Container Engine 上运行。我选择 GCE 是为了避免配置麻烦,成本可以承受并学习新东西。

我的 pod 运行良好,我创建了一个类型LoadBalancer的服务来在端口 80 和 443 上公开服务。这完美地工作。

但是,我发现对于每个LoadBalancer服务,都会创建一个新的 Google Compute Engine 负载均衡器。这个负载均衡器非常昂贵,并且对于单个实例上的业余项目来说真的做得太过分了。

为了降低成本,我正在寻找一种无需负载平衡器即可公开端口的方法。

到目前为止我尝试过的:

有没有办法在没有负载均衡器的情况下为 Google Container Engine 上的单个实例公开端口 80 和 443?

google-compute-engine kubernetes google-cloud-platform

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

如何在 Kubernetes Pod 中挂载具有特定 UID 的卷?

所以,我试图让 Nexus 基于Kubernetes 中的这个图像运行,但它失败了:

mkdir: cannot create directory '../sonatype-work/nexus3/log': Permission denied
mkdir: cannot create directory '../sonatype-work/nexus3/tmp': Permission denied
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file ../sonatype-work/nexus3/log/jvm.log due to No such file or directory
Run Code Online (Sandbox Code Playgroud)

从文档中可以看出该进程使用 UID 200 运行,并且必须使用这些权限安装卷:

A persistent directory, /nexus-data, is used for configuration,
logs, and storage. This directory needs to be writable by the Nexus
process, which runs as UID 200.
Run Code Online (Sandbox Code Playgroud)

我试图搜索文档以找到一种使用这些权限安装卷的方法,但是,我找不到任何方法来做到这一点。

有谁知道您是否可以在 PVC/PV 或 Deployment 的配置中指定用于安装卷的 UID?如果是这样,如何?

permissions disk-volume pv kubernetes

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

在 Kubernetes 部署规范中使用环境变量

我目前使用 Kubernetes 规范Deployment.yaml来部署服务。该规范包括对特定 IP 地址的逐字引用(标记<static-ip-address>如下):

spec:
  type: LoadBalancer
  loadBalancerIP: <static-ip-address>
Run Code Online (Sandbox Code Playgroud)

我担心将密码或 IP 地址等信息推送到远程 Git 存储库中。我可以通过使用环境变量来避免这种情况,例如使用部署规范和实际部署大致如下:

spec:
   type: LoadBalancer
   loadBalancerIP: ${SERVICE_ADDRESS}
Run Code Online (Sandbox Code Playgroud)

export SERVICE_ADDRESS=<static-ip-address>
kubectl create -f Deployment.yaml
Run Code Online (Sandbox Code Playgroud)

显然,这种特定的语法还不起作用。但是这样的事情可能吗,如果有的话怎么办?

我宁愿不依赖单独的配置工具Secret s 和ConfigMaps 看起来很有希望,但显然不能以适合此目的的方式使用它们。如果我可以直接引用用它定义的静态 IP 地址gcloud compute addresses create service-address,那就最好了。

environment-variables kubernetes google-kubernetes-engine

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

回退重启失败的容器 - Minikube 中同步 pod 时出错

我在尝试创建 pod 时遇到了这个错误。甚至像 Ubuntu、Alpine 这样非常常见的图像也会发生这种情况。我对 Kubernetes 还很陌生并且使用Minikube 节点(版本 v0.24.1)

命令:

kubectl run ubuntu --image==ubuntu
Run Code Online (Sandbox Code Playgroud)

错误

Back-off restarting failed container - Error syncing pod
Run Code Online (Sandbox Code Playgroud)

版本:

  • Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"**v1.8.0**", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

  • Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"**v1.8.0**", GitCommit:"0b9efaeb34a2fc51ff8e4d34ad9bc6375459c4a4", GitTreeState:"clean", BuildDate:"2017-11-29T22:43:34Z", GoVersion:"go1.9.1", Compiler:"gc", Platform:"linux/amd64"}

描述 Pod 命令:

Name:           ubuntunew-7567df64b8-mwc7x
Namespace:      default
Node:           minikube/192.168.99.102
Start Time:     Tue, 31 Jul 2018 14:48:35 +0530
Labels:         pod-template-hash=3123892064
                run=ubuntunew
Annotations:    kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"default","name":"ubuntunew-7567df64b8","uid":"b3ba5547-94a2-11e8-91ce-080027df8e9...
Status:         Running
IP:             172.17.0.4
Created By:     ReplicaSet/ubuntunew-7567df64b8
Controlled By:  ReplicaSet/ubuntunew-7567df64b8 …
Run Code Online (Sandbox Code Playgroud)

kubernetes

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

无法运行 Kubelet:验证服务连接:端点未实现 CRI v1 运行时 API

我已经kubelet 1.26.0使用命令安装在 Ubuntu 22.04 上apt install kubelet,但是当我尝试时journalctl -xeu kubelet得到以下结果:

\n
\xe2\x96\x91\xe2\x96\x91 \n\xe2\x96\x91\xe2\x96\x91 The unit kubelet.service has entered the 'failed' state with result 'exit-code'.\nDec 14 15:41:16 a systemd[1]: kubelet.service: Scheduled restart job, restart counter is at 86.\n\xe2\x96\x91\xe2\x96\x91 Subject: Automatic restarting of a unit has been scheduled\n\xe2\x96\x91\xe2\x96\x91 Defined-By: systemd\n\xe2\x96\x91\xe2\x96\x91 Support: http://www.ubuntu.com/support\n\xe2\x96\x91\xe2\x96\x91 \n\xe2\x96\x91\xe2\x96\x91 Automatic restarting of the unit kubelet.service has been scheduled, as the result for\n\xe2\x96\x91\xe2\x96\x91 the configured Restart= setting for the unit.\nDec 14 15:41:16 a systemd[1]: …
Run Code Online (Sandbox Code Playgroud)

configuration systemd systemctl kubernetes kubeadm

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