标签: kubectl

kubectl apply和kubectl replace之间有什么区别

我最近在学习Kubernetes,我不太清楚"kubectl apply"和"kubectl replace"之间的区别.有什么情况我们只能使用其中一个吗?

kubectl

27
推荐指数
5
解决办法
5892
查看次数

列出与 Helm 部署或 Chart 相关的所有 Kubernetes 资源

我使用部署了一个 Helm Chart helm install,之后我想查看与此部署相关的 pod/services/cms 是否已启动或失败。有办法看到这个吗?

使用kubectl get pods和 grep 查找该名称是有效的,但它不会显示部署此 Helm Chart 时部署的服务和其他资源。

kubernetes kubectl kubernetes-helm

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

使用'kubectl run'命令时如何传递图像拉秘密?

我正在尝试使用kubectl run命令从私有注册表中提取图像并从中运行命令.但我没有看到指定图像拉秘密的选项.看起来像是无法将图像密码作为运行命令的一部分传递.

是否有任何备用选项来拉动容器并使用kubectl运行命令?应在控制台上看到命令输出.一旦命令完成,pod应该死掉.

kubernetes kubectl

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

在此上下文中不允许映射值

我是 YAML 格式和 kubernetes 的新手。

下面是一个dep_prom.yml文件。

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    name: prometheus-deployment
  name: prometheus
  #namespace: prometheus
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: prometheus
    spec:
      containers:
      - image: prom/prometheus:master
        name: prometheus
        command:
        - "/bin/prometheus"
        args:
        - "-config.file=/etc/prometheus/prometheus.yml"
        - "-storage.local.path=/prometheus"
        - "-storage.local.retention=24h"
        ports:
        - containerPort: 9090
          protocol: TCP
        volumeMounts:
        - mountPath: "/prometheus"
          name: data
        - mountPath: "/etc/prometheus"
          name: config-volume
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
          limits:
            cpu: 500m
            memory: 2500Mi
      volumes:
      - name: data
        hostPath:
          path: …
Run Code Online (Sandbox Code Playgroud)

yaml kubernetes kubectl

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

在容器引擎上定义/ dev/shm的大小

我在Debian 8上运行带有xvfb的Chrome.它一直有效,直到我打开一个标签并尝试加载内容.这个过程默默地死去......

幸运的是,我已经让它在我当地的码头上运行顺利docker run --shm-size=1G.

Chrome中存在一个已知错误,当/ dev/shm太小时会导致错误.

我正在部署到Container引擎,并检查操作系统规范.主机操作系统有一个固定的7G安装到/ dev/shm,但实际的容器只分配了64M.Chrome崩溃了.

使用kubectl部署到容器引擎时,如何设置/ dev/shm的大小?

docker google-cloud-platform google-kubernetes-engine kubectl

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

有没有办法 kubectl 应用目录中的每个文件?

我现在正在编写一个 ansible playbook,它在 kubernetes 中部署了一个 dockerized 应用程序。但是,出于分子目的,我宁愿不对执行后需要应用的文件进行硬编码kompose convert -f docker-compose.yaml --volumes hostPath 有没有办法应用目录中的所有文件?

kubernetes kubectl

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

Kubectl get pods - 如何按部分名称过滤 pod

该命令kubectl get pods <POD NAME>将返回具有该名称的特定 Pod。我想知道是否有一种方法可以使用部分名称,例如返回所有以j.

kubernetes kubectl

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

使用kubectl查找新pod的名称

我是k8s的新手,我在这里遇到了一个小问题.

这是上下文:我需要kubectl delete [podname]每天通过crontask 调用一次,并等到k8s重新创建pod,然后登录该pod中的容器并运行shell命令.

所以我查询部署并得到这样的东西:

user@host:~$ kubectl get pods
NAME                             READY     STATUS    RESTARTS   AGE
firstpod-123456789-something           1/1       Running   570        2d
secondpod-http-backend-something       1/1       Running   597        2d
Run Code Online (Sandbox Code Playgroud)

然后我写了一个bash脚本,它会在5分钟的时间间隔内删除pod.这很容易.

假设我调用kubectl delete firstpod-123456789-something并等待k8s重新创建一个新的pod.那个新的pod会有一个新的名字firstpod-[some random hash here]-something

问题是我需要在我的bash脚本中捕获该pod的名称,这样我就可以在该pod中执行命令,uname -a或者无论如何验证新pod已启动并运行正常.

我用谷歌搜索并阅读了kubectl文档,但我认为通过bash脚本有一种简单的方法可以做到这一点?我假设在这里获取pod名称的唯一方法是通过k8s API?

我很高兴在这一点上使用任何解决方案.我想知道当k8s产生新的pod时,我是否有任何重命名新pod的方法?所以我可以grep一个特定的关键字?

请注意,我不想firstpod-[0-9]-something因为那只是一个例子而得到了一些东西.很多豆荚有很多不同的名字,这只是一个例子.

谢谢!

kubectl

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

kubectl wait --for=condition=complete --timeout=30s

我正在尝试通过本文档使用 kubectl wait 命令检查 pod 的状态。以下是我正在尝试的命令

kubectl wait --for=condition=complete --timeout=30s -n d1 job/test-job1-oo-9j9kj
Run Code Online (Sandbox Code Playgroud)

以下是我得到的错误

Kubectl error: status.conditions accessor error: Failure is of the type string, expected map[string]interface{}
Run Code Online (Sandbox Code Playgroud)

和我的kubectl -o json output can be accessed via this github 链接

有人可以帮我解决这个问题吗

kubernetes kubectl

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

无论如何要获得kubernetes集群的外部端口

我在kubernetes集群中的所有节点上的外部端口上公开了一项服务:root @ ubuntu:/ home #kubectl create -f nginx-service.yaml您已在集群中所有节点上的外部端口上公开了您的服务.如果要将此服务公开给外部Internet,则可能需要为服务端口(tcp:30002)设置防火墙规则以提供流量.

有关详细信息,请参阅http://releases.k8s.io/release-1.2/docs/user-guide/services-firewalls.md.服务"nginx-service"创建root @ ubuntu:/ home#

那么,无论如何都要获得kubernetes集群的外部端口?

kubernetes kubectl

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