标签: kubernetes-pod

如何配置Kubernetes Multi-Pod部署

我想通过k8s Deployment对象管理我的部署来部署应用程序集群.文档让我非常困惑.我的基本布局具有以下可独立扩展的组件:

  1. API服务器
  2. UI服务器
  3. Redis缓存
  4. 定时器/预定任务服务器

从技术上讲,以上所有4个属于独立缩放的独立窗格.

我的问题是:

  1. 我是否需要创建pod.yml文件然后以某种方式在deployment.yml文件中引用它们,或者部署文件是否也可以嵌入pod定义?
  2. K8s文档似乎暗示这spec部分Deployment相当于定义一个 pod.那是对的吗?如果我想以声明方式描述多pod部署,该怎么办?我是否需要多个deployment.yml文件?

deployment containers kubernetes google-kubernetes-engine kubernetes-pod

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

如何登录/进入 kubernetes pod

我正在运行 kubernetes pod,如命令“kubectl get all -A ”所示:

在此输入图像描述

命令“kubectl get pod -A”中显示了相同的 pod : 在此输入图像描述

我想进入/登录这些 pod 中的任何一个(全部都处于运行状态)。我该怎么做,请让我知道命令?

kubernetes kubectl kubernetes-pod

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

如何在kubernetes中停止/暂停Pod

我的集群中运行着一个MySQL Pod。
我需要暂时暂停pod的工作而不删除它,这类似于docker,其中docker stop container-idcmd将停止容器而不删除容器。
Kubernetes中是否有任何命令可以暂停/停止Pod?

docker kubernetes kubernetes-pod

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

Kubernetes 在现有目录上挂载卷,容器内有文件

我使用 1.11 版的 k8s 和 CephFS 作为存储。

我正在尝试挂载在 pod 中的 CephFS 上创建的目录。为了达到同样的目的,我在部署配置中编写了以下卷和卷挂载配置

体积

{
  "name": "cephfs-0",
  "cephfs": {
    "monitors": [
      "10.0.1.165:6789",
      "10.0.1.103:6789",
      "10.0.1.222:6789"
    ],
    "user": "cfs",
    "secretRef": {
      "name": "ceph-secret"
    },
    "readOnly": false,
    "path": "/cfs/data/conf"
  }
}
Run Code Online (Sandbox Code Playgroud)

卷挂载

{
  "mountPath": "/opt/myapplication/conf",
  "name": "cephfs-0",
  "readOnly": false
} 
Run Code Online (Sandbox Code Playgroud)

安装工作正常。我可以看到 ceph 目录,即 /cfs/data/conf 被挂载在 /opt/myapplication/conf 上,但以下是我的问题。

我的配置文件已经作为 docker 镜像的一部分出现在 /opt/myapplication/conf 位置。当部署尝试挂载 ceph 卷时,位于 /opt/myapplication/conf 位置的所有文件都会消失。我知道这是挂载操作的行为,但是有什么方法可以将容器中已经存在的文件保留在我正在挂载的卷上,以便挂载相同卷的其他 pod 可以访问配置文件。即 pod 中位于 /opt/myapplication/conf 位置的文件应该可以在位置 /cfs/data/conf 的 CephFS 上访问。

是否可以?

我浏览了 docker 文档,它提到

使用容器填充一个卷如果你启动一个创建新卷的容器,如上,并且容器在要挂载的目录中有文件或目录(如上面的/app/),目录的内容被复制到卷中. 然后容器安装并使用该卷,使用该卷的其他容器也可以访问预先填充的内容。

这符合我的要求,但如何使用 k8s …

mount docker kubernetes kubernetes-pod

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

Kubernetes 中同一个 POD 中的容器之间如何通信?

对于一个 POD,已创建三张图像。这里的问题是同一 Pod 中的容器之间没有通信。我的应用程序应该如何与这三个容器连接?

我的 Pod 有以下容器。

[dev-application dev-app-nginx dev-app-redis]
Run Code Online (Sandbox Code Playgroud)

在这里我可以看到只有rails正在运行,但是redis和nginx没有运行。因为 Redis 和 nix 在同一个 pod 中作为不同的容器运行。

kubectl exec -ti test-deployment-5f59864c8b-mv4kk sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Defaulting container name to dev-application.
Use 'kubectl describe pod/test-deployment-5f59864c8b-mv4kk -n dev-app' to see all of the containers in this pod.
# rails -v
Rails 4.2.11.3
# redis -v
sh: 2: redis: not found
# nginx -v
sh: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-pod

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

使用模式匹配或通配符删除 Kubenetes POD

当我在下面使用时,它会在匹配命令行模式后删除正在运行的 POD:

kubectl get pods -n bi-dev --no-headers=true | awk '/group-react/{print $1}' | xargs kubectl delete -n bi-dev pod
Run Code Online (Sandbox Code Playgroud)

但是,当我将此命令用作 .bash_profile 中的别名时,它不会执行。这就是我定义它的方式:

 alias kdpgroup="kubectl get pods -n bi-dev --no-headers=true | awk '/group-react/{print $1}'|  kubectl delete -n bi-dev pod"
Run Code Online (Sandbox Code Playgroud)

当按如下方式执行此操作时,我在命令行中出现以下错误:

~ $ kdpgroup
error: resource(s) were provided, but no name, label selector, or --all flag specified
Run Code Online (Sandbox Code Playgroud)

当我在 .bash_profile 中定义它时,我得到了这个:

~ $ . ./.bash_profile
-bash: alias: }| xargs  kubectl delete -n bi-dev pod: not found
~ $
Run Code Online (Sandbox Code Playgroud)

我是否缺少使用 Pattern Match 或 Wilcard …

kubernetes kubectl kubernetes-pod

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

节点资源不足:ephemeral-storage

由于“节点资源不足:临时存储”,节点的所有 pod 都处于Evicted状态。

portal-59978bff4d-2qkgf                            0/1     Evicted   0          14m
release-mgmt-74995bc7dd-nzlgq                      0/1     Evicted   0          8m20s
service-orchestration-79f8dc7dc-kx6g4              0/1     Evicted   0          7m31s
test-mgmt-7f977567d6-zl7cc                         0/1     Evicted   0          8m17s
Run Code Online (Sandbox Code Playgroud)

任何人都知道它的快速修复。

kubernetes kubernetes-pod

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

container_cpu_cfs_throttled_seconds_total 指标是什么意思

cadvisor 有两个指标container_cpu_cfs_throttled_seconds_totalcontainer_cpu_cfs_throttled_periods_total

我很困惑这是什么意思..

我找了两个解释一下?

  1. 容器以 cpu 限制运行,当容器 cpu 超过限制时,容器将被“节流”并向container_cpu_cfs_throttled_seconds_total添加时间

    that means ?
     (1). only container cpu over limit, rate(container_cpu_cfs_throttled_seconds_total) > 0. 
     (2). we can use this metrics to alert container cpu over limit ... 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 当主机处于沉重的 cpu 压力下时,它将使用 POD QoS(保证 > 突发 > 尽力而为)“节流”容器......

    that means ?
     (1). container_cpu_cfs_throttled_seconds_total will add has no relate with how many cpu container used and cpu limit ..
     (2). this metrics can not to alert container cpu over limit .. 
    
    Run Code Online (Sandbox Code Playgroud)

kubernetes-pod

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

kubectl list / 删除所有已完成的作业

我正在寻找kubectl命令来列出/删除所有已完成的作业

我试过:

kubectl get job --field-selector status.succeeded=1
Run Code Online (Sandbox Code Playgroud)

但我得到:

enfield selector "status.succeeded=1": field label "status.succeeded" not supported for batchv1.Jobter code here
Run Code Online (Sandbox Code Playgroud)

工作时--fieldSelector的可能字段是什么?

有一个更好的方法吗 ?

kubernetes google-kubernetes-engine kubectl kubernetes-pod kubernetes-jobs

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

Kubernetes - pod 具有未绑定的即时 PersistentVolumeClaims

我正在使用 mysql Kubernetes statefulset,我将 PV 映射到主机目录(CentOS 8 VM)但得到“pod has unbound直接 PersistentVolumeClaims”

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql-container
spec:
  serviceName: mysql
  replicas: 1 
  selector:
    matchLabels:
      app: mysql-container
  template:
    metadata:
      labels:
        app: mysql-container
    spec:
      containers:
      - name: mysql-container
        image: mysql:dev
        imagePullPolicy: "IfNotPresent"
        envFrom:
          - secretRef:
             name: prod-secrets
        ports:
        - containerPort: 3306
         # container (pod) path
        volumeMounts:
          - name: mysql-persistent-storage
            mountPath: /var/lib/mysql


      volumes:
        - name: mysql-persistent-storage
          persistentVolumeClaim:
           claimName: mysql-pvc
 volumeClaimTemplates:
    - metadata:
        name: data
      spec:

        storageClassName: localstorage
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-statefulset kubernetes-pod

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