标签: kubernetes-pod

我们可以在 kubernetes 的单个 nodeSelector 中提及多个节点标签吗

我想在两个特定节点(我们的 kube 集群中总共 15 个节点)中安排 10 个 pod。

所以在复制控制器文件中,我在 nodeSelector 中提到了两个值,如下所示。

nodeSelector:  
  app: node1  
  app: node2  
Run Code Online (Sandbox Code Playgroud)

问题是它一直只占用 node2。无论我提到什么序列,它只占用最后一个节点。

注意:node1node2是节点的标签。

docker kubernetes kubernetes-pod

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

如何在 kubernete 的 pod yaml 文件中指定主机端口范围而不是主机端口?

在 docker run 命令中,我们可以指定主机端口范围以绑定到 EXPOSED 容器端口。我想通过 Kubernetes 做同样的事情。有谁知道这是怎么做到的吗?我当前的 pod 定义是-

apiVersion: v1  
kind: Pod  
metadata:  
  name: nginx-testing  
spec:  
   containers:  
   - name: nginx-container  
     image: docker.io/nginx  
     ports:  
     - containerPort: 80  
       hostPort: 9088  
Run Code Online (Sandbox Code Playgroud)

在最后一行,我想要一系列端口号,而不是指定单个端口号。我尝试了类似的东西hostPort: 9088-9999 or 9088..9999,但它不起作用。

port docker kubernetes kubernetes-pod

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

如何从 kubernetes 中的默认命名空间中删除 LimitRange?

对于其中一项要求,我使用下面的 yaml 文件在默认名称空间上创建了一个新的 pod

 apiVersion: v1
 kind: LimitRange
 metadata:
 name: mem-min-max-demo-lr1
 spec:
 limits:
 - max:
  memory: 5Gi
 min:
  memory: 900Mi
 type: Container
Run Code Online (Sandbox Code Playgroud)

现在我需要从 kubernetes 的默认命名空间中删除这些 LimitRange ?

autoscaling kubernetes kubectl kubernetes-pod

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

是否有可能,如果总是失败,如何限制 kubernetes 作业创建最大数量的 pod?

作为我们公司的 QA,我是 kubernetes 的日常用户,我们使用 kubernetes 作业来创建性能测试 pod。根据文档,工作的优势之一是

创建一个 Job 对象,以便可靠地运行一个 Pod 直至完成

但在我们的测试中,如果之前的 Pod 失败,此功能将创建无限个 Pod,这将占用我们团队共享集群的资源,并且删除这些 Pod 将花费大量时间。看这张图片: 在此输入图像描述

目前的工作清单是这样的:

   {
  "apiVersion": "batch/v1",
  "kind": "Job",
  "metadata": {
    "name": "upgradeperf",
    "namespace": "ntg6-grpc26-tts"
  },
  "spec": {
    "template": {
      "spec": {
        "containers": [
          {
            "name": "upgradeperfjob",
            "image":
"mycompany.com:5000/ncs-cd-qa/upgradeperf:0.1.1",
            "command": [
              "python",
              "/jmeterwork/jmeter.py",
              "-gu",
              "git@gitlab-pri-eastus2.dev.mycompany.net:mobility-ncs-tools/tts-cdqa-tool.git",
              "-gb",
              "upgradeperf",
          "-t",
              "JMeter/testcases/ttssvc/JMeterTestPlan_ttssvc_cmpsize.jmx",
          "-JtestDataFile",
              "JMeter/testcases/ttssvc/testData/avaml_opus.csv",
          "-JthreadNum",
              "3",
          "-JthreadLoopCount",
              "1500",
          "-JresultsFile",
              "results_upgradeperf_cavaml_opus_t3_l1500.csv",
          "-Jhost",
          "mtl-blade32-03.mycompany.com",
          "-Jport",
          "28416"
            ]
          }
        ],
        "restartPolicy": "Never",
        "imagePullSecrets": [
          {
            "name": "docker-registry-secret"
          }
        ] …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-pod kubernetes-jobs

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

Kubernetes 有没有办法检查 hpa 何时发生?

我已经为我在 Kubernetes 中的部署之一配置了 hpa。

有什么方法可以检查部署中是否发生 HPA 缩放以及何时发生?

我没有部署普罗米修斯或任何监控解决方案。

horizontal-scaling autoscaling kubernetes kubernetes-pod

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

如何重启kubeadm搭建的k8s集群的kubernetes kube-scheduler

kubeadm我按照这个官方教程创建了一个kubernetes集群。每个控制面板组件(apiserver、control manager、kube-scheduler)都是一个正在运行的 pod。我了解到 kube-scheduler在创建时将使用一些默认的调度策略(在此处定义kubeadm) 。这些默认策略是所有可用策略的子集(此处列出

如何使用新配置(不同的策略列表)重新启动 kube-scheduler pod?

kubernetes kubernetes-pod

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

用于在 Kubernetes 上运行 Spark 时指定容忍度的 Pod 模板

我在尝试通过 Kubernetes 调度程序启动 Spark 作业时遇到一些问题。

我希望所有驱动程序/执行程序 Pod 都生成到具有一定污点的节点上。因此,我想指定将直接注入到 Pod 配置文件中的容忍度。目前没有直接从spark-submit命令默认的方式

根据thisthis,用户应该能够指定一个 pod 模板,该模板可以使用以下参数进行设置:spark.kubernetes.driver.podTemplateFilespark.kubernetes.executor.podTemplateFile

spark-submit我尝试使用以下文件在命令中指定这些参数:

pod_template.template

apiVersion: v1
kind: Pod
spec:
  tolerations:
  - effect: NoSchedule
    key: dedicated
    operator: Equal
    value: test
Run Code Online (Sandbox Code Playgroud)

然而,这种容忍永远不会被添加到启动的驱动程序窗格中。目前有办法解决这个问题吗?

作为参考,这里是完整的 Spark-submit 命令:

/opt/spark/bin/spark-submit --name spark-pi --class org.apache.spark.examples.SparkPi --conf spark.kubernetes.executor.volumes.persistentVolumeClaim.persistent.options.claimName=pvc-storage --conf spark.kubernetes.executor.volumes.persistentVolumeClaim.persistent.mount.subPath=test-stage1/spark --conf spark.executor.memory=1G --conf spark.executor.instances=1 --conf spark.kubernetes.driver.volumes.persistentVolumeClaim.persistent.mount.subPath=test-stage1/spark --conf spark.kubernetes.executor.limit.cores=1 --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark --conf spark.kubernetes.namespace=test-stage1 --conf spark.kubernetes.driver.volumes.persistentVolumeClaim.persistent.mount.path=/persistent --conf spark.kubernetes.driver.limit.memory=3G --conf spark.kubernetes.executor.volumes.persistentVolumeClaim.persistent.mount.path=/persistent --conf spark.submit.deployMode=cluster --conf spark.kubernetes.container.image=<SPARK IMAGE> --conf spark.master=k8s://https://kubernetes.default.svc --conf …
Run Code Online (Sandbox Code Playgroud)

apache-spark kubernetes pyspark kubernetes-pod

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

Grafana 仪表板不显示 pod 名称,而是 pod_name

我已经在 kubernetes 集群上部署了应用程序,并使用 prometheus 和 grafana 进行监控。对于使用 Grafana 仪表板的 kubernetes pod 监控:Kubernetes 集群监控(通过 Prometheus)https://grafana.com/grafana/dashboards/315

我使用 id 315 导入了仪表板,它的反射没有 pod 名称和容器名称,而是获取 pod_name 。任何人都可以帮助我如何在仪表板中获取 pod 名称和容器名称。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

grafana kubernetes prometheus kubernetes-pod

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

如何从具有特定标签的命名空间中获取 Pod?

可以获取集群上的所有 Pod:

kubectl get pod --all-namespaces -o wide
Run Code Online (Sandbox Code Playgroud)

还可以获取集群上具有特定标签的所有 Pod:

kubectl get pod --all-namespaces -o wide --selector some.specific.pod.label
Run Code Online (Sandbox Code Playgroud)

甚至可以获取集群特定节点上的所有 pod:

kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<node>
Run Code Online (Sandbox Code Playgroud)

问题是,如何从具有特定标签的命名空间中获取所有 pod?

例如kubectl get pod --namespace-label some.specific.namespace.label -o wide(伪代码)

kubernetes kubectl kubernetes-pod

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

Liveness/Readiness 探针如何与 Pod 通信?

我对 k8s 很陌生,所以如果问题没有意义或者不正确/愚蠢,我深表歉意。

我为我的 pod 定义配置了一个活性探针,它只访问运行状况 API 并检查其响应状态以测试 pod 的活性。

我的问题是,虽然我了解活性/就绪探针的目的……它们到底是什么?它们是否只是另一种类型的 Pod,它们被旋转起来并尝试通过配置的 API 与我们的 Pod 进行通信?或者它们是某种轻量级进程,在 Pod 内部运行并尝试 API 调用?

另外,探针如何与 Pod 通信?我们是否需要为 Pod 配置一个服务,以便探针能够访问 API,或者它是一个内部进程,不需要额外的配置?

kubernetes kubernetes-pod readinessprobe

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