我最近在学习Kubernetes,我不太清楚"kubectl apply"和"kubectl replace"之间的区别.有什么情况我们只能使用其中一个吗?
我使用部署了一个 Helm Chart helm install,之后我想查看与此部署相关的 pod/services/cms 是否已启动或失败。有办法看到这个吗?
使用kubectl get pods和 grep 查找该名称是有效的,但它不会显示部署此 Helm Chart 时部署的服务和其他资源。
我正在尝试使用kubectl run命令从私有注册表中提取图像并从中运行命令.但我没有看到指定图像拉秘密的选项.看起来像是无法将图像密码作为运行命令的一部分传递.
是否有任何备用选项来拉动容器并使用kubectl运行命令?应在控制台上看到命令输出.一旦命令完成,pod应该死掉.
我是 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) 我在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
我现在正在编写一个 ansible playbook,它在 kubernetes 中部署了一个 dockerized 应用程序。但是,出于分子目的,我宁愿不对执行后需要应用的文件进行硬编码kompose convert -f docker-compose.yaml --volumes hostPath 有没有办法应用目录中的所有文件?
该命令kubectl get pods <POD NAME>将返回具有该名称的特定 Pod。我想知道是否有一种方法可以使用部分名称,例如返回所有以j.
我是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 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集群中的所有节点上的外部端口上公开了一项服务: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集群的外部端口?