我按照此处的说明安装了Kubernetes群集:
第一次一切看起来都很好。我能够看到节点、吊舱、部署新吊舱等
当我停止集群并再次尝试启动它时,问题就会出现。我正在重新启动群集,如文档所示:
vagrant halt
./cluster/kube-up.sh
当我这样做时,我看到以下错误:
Comment: Source file salt://kubelet/kubeconfig not found
...
Minion did not return. [No response]
然
在Kubernetes中使用NFS卷制作Pod时,NFS是硬装载还是软装载
据我所知,这可能会影响它处理超时的方式
示例yaml:
apiVersion: v1
kind: Pod
metadata:
name: nfs-web
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
volumeMounts:
- name: nfs
我们在容器中使用systemd来管理容器中运行的进程。
我们在容器中配置日志,以便它将所有日志发送到/dev/console。
为了在容器中包含/dev/console,我们在部署容器时必须使用Docker的-t选项
我想问,库伯内特斯的等效方法是什么。我们可以在pod清单中的何处声明我们需要容器中的/dev/console?
我明白,对于kubectl,使用-tty或-t是可能的。但是我们不想用kubectl启动容器。kubectl-tty选项只适用于kubectl exec-tty,它用于在
您好,我正在通过以下方式在Mesos上建立Kubernetes,这就是我当前的测试实验室的样子
2名mesos master和zookeeper
2个安装了docker和flannel的mesos奴隶
附加的从站运行Kubernetes mesos和Kubernetes srvices
带有ETCD服务的服务器,支持flannel和kubernetes
你能告诉我这是否足够吗?
下面是我的两个问题
我们真的需要将kubernetes主服务器配置为mesos从服务器吗
我们是否也需要在mesos奴
有没有办法告诉kubectl我的POD应该只部署在某个实例池上
例如:
nodeSelector:
pool: poolname
假设我已经用以下内容创建了我的池:
gcloud container node-pools create poolname --cluster=cluster-1 --num-nodes=10 --machine-type=n1-highmem-32
好的,我找到了一个解决方案:
gcloud为池名称创建标签。在我的清单中,我把它放在了节点选择器下。很
我目前正在建立一个POC spinnaker管道来部署到kubernetes集群
在试验spinnaker的红/黑策略时,我注意到它的行为并不像我预期的那样。我希望它通过以下步骤保证只有1个版本获得流量:
部署黑色服务器组(kubernete的replicaset)&确保其正常运行
通过更新负载平衡器的目标,将服务的流量重新路由到黑服务器组
禁用红色服务器组
但实际上,至少在与kubernetes一起使用时,这里的步骤2似乎映射到几个步骤:
向负载平衡器添加黑色目标
从负载平衡器上卸下红色目标
比方说,您需要在每个工作节点上的固定端口上运行一个自定义应用程序,就像监控代理一样,下面是我的POC:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: monitor
spec:
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
template:
metadata:
la
我使用kubernetes作为docker的编排工具,并具有以下用例:
我有两个容器,分别是container-1和container-2
我正在暴露container-1映像中的卷(比如/app/data),并希望访问container-2中的此卷。这与我正在寻找的docker中的卷非常相似
我怎样才能做到这一点
谢谢Kubernetes也有“卷”,请参见此处:Kubernetes也有“卷”,请参见此处:容器始终在同一节点上?容器始终在同一节点上?
标签: Kubernetes
catalograncherkubernetes-health-checkkubelet
有三台主机运行Rancher群集
牧场主:1.6.10
库伯内特斯:1.7.7
从主主机上的目录安装k8s
将orchestration=true和etcd=true标签设置为两个Rancher代理主机
k8s堆栈完成后,只有kubelet出错不正常带有0个容器
为什么?
该问题已在评论部分进行了调试
Kubernetes咒语
我添加了一些额外的要点,以便在调试Kubelet时牢记这一点
K8s群集由具有多个组件的主节点和工作节点组成。Kubelet是需要适当注意的组件之一
让我们从主节点
我正试图设置prometheus来监控我的kubernetes集群的节点、服务和端点[1个主节点,7个小节点]。为此,我有一个非常基本的promethus.yml文件:
scrape_configs:
- job_name: 'kubernetes-pods'
tls_config:
insecure_skip_verify: true
kubernetes_sd_configs:
- role: pod
在启动Prometheus应用程序之前,我运行了以下两个命令:
ex
我想在已经连接了一个与pod相关联的EBS卷的同一工作节点中扩展pod。我怎样才能做到呢
谢谢您可以将podaaffinity配置为仅在已调度的同一节点上调度新的pod(显然不是在第一个节点的情况下)
我试图以最不允许的方式配置Kubernetes RBAC,我希望将我的角色范围限定到特定的资源和子资源。我翻遍了文档,找不到资源及其子资源的简明列表
我对管理部署规范一部分的子资源(容器映像)特别感兴趣。我甚至不愿意把它作为一个“答案”,但肯定太长了,无法发表评论
对于资源列表,您是否知道$HOME/.kube/cache/discovery,其中,Swagger JSON文件通过与其封装的apiVersion相匹配的目录持久化到磁盘?我能找到的最快的链接(查看“发现和使用CRD”标题),但是l
标签: Kubernetes
autoscalinggoogle-kubernetes-engine
我有一个服务器节点和功能强大的昂贵工作节点。
工作节点设置为从/自动缩放为零,每周运行几个小时
当服务器向worker服务创建HTTP请求时(对应的作业驻留在worker节点上),我希望该worker节点启动、启动Job pod并处理该请求。类似于基于systemd服务套接字的激活。您可能需要创建自己的自定义资源定义(CRD)并编写所需的触发器
您可能会发现此链接很有用:
标签: Kubernetes
appdynamicskubernetes-podkubernetes-namespace
我需要将集群、命名空间和pod名称从部署在Kubernetes集群中的容器传递给AppDynamics代理
我尝试了下面的方法,但不起作用
containers:
- env:
- name: JAVA_OPTS
value: -Dappdynamics.agent.nodeName=$HOST-$spec.nodeName-spec.PodName
及
谁能在这里帮我收集详细信息并传递给AppD。
提前感谢。您可以通过fieldRef将它们作为
在本书的“创建部署”一节中,它有一个yaml文件,开头如下:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
run: nginx
将标签应用于部署有什么用?我了解POD和服务是如何交互的,但部署中的标签何时开始起作用?标签对于分组相互关联的应用程序很有用。例如,您有一个需要部署、服务、数据库(可能使用部署或状态集部署)的应用程序。现在,如果您对所有这些资源使用类似的标签(让它成为app:my a
我有一个带有服务器和客户端的购物卡应用程序,我想使用Minikube和Kubernetes部署它
我们是否应该为服务器和客户端创建两个Yaml文件?
有没有关于如何创建Yaml文件的想法 一个用于服务器,一个用于客户端
简单路径
k8s
-values_production.yaml for production server
-value_staging.yaml for staging server
就这些
在yaml文件中,您应该存储环境变量并通过前缀解析它们。这是最简单的方
我正试图通过hyperv在本地Windows 10计算机上安装kubernetes。我遇到了一些我不确定如何解决的错误。我也尝试过运行kubernetes v1.8.0,但收到了相同的错误
以下是我在powershell中输入的内容:
minikube启动--kubernetes version=“v1.10.11”--vm driver=“hyperv”--hyperv虚拟交换机=“minikube”
以下是返回的内容:
正在获取虚拟机IP地址。。。
正在将文件移动到群集。。。
正在停止额外的
标签: Kubernetes
amazon-elbkubernetes-ingressnginx-ingress
我在设置kubernetes ingress nginx以对外公开我的应用程序时遇到问题。以下是我所做的步骤:
应用程序部署:
已创建名为入口的命名空间
在入口命名空间中描述我的应用程序(我们称之为testapp)的已部署状态集资源
创建ClusterIP服务,使我的应用程序在kube群集中可用
(testapp)在入口命名空间中
Ingress nginx设置:
已在命名空间ingress中创建ingress nginx控制器
已在命名空间ingress中创建ingress nginx服务
如
我正试着和库伯内特斯做一个cron工作。作业执行一个程序,该程序根据作业的计划开始时间执行一些计算。我的程序如何在执行期间访问此值?选项1(最简单):将相同的值放入作业容器环境变量。我假设您使用helm或类似的机制进行安装,因此在两个位置重用schedule变量应该很容易
选项2:组合使用角色、角色绑定和服务帐户,然后使用kubectl/语言k8s客户端检索cronjob(如果名称空间中有多个,则需要知道其名称)并从其参数获取计划
选项3:这是1的变体,但使用resourceFieldRef。不
我需要根据Kubernetes配额对Kubernetes资源进行排队
预期情景示例:
用户创建Kubernetes资源(比如一个简单的X pod)
已达到quora对象资源计数,pod X进入挂起状态
资源被释放(其他pod Y被移除),我们的X pod开始创建
例如,由于配额行为返回403禁止,当配额中没有可用资源时,此场景将不起作用:
如果创建或更新资源违反配额约束,则请求将失败,HTTP状态代码403禁止,并显示一条消息解释可能违反的约束
问题:
有没有办法通过本地Kubernetes
标签: Kubernetes
jupyterdevopskubernetes-helmjupyterhub
我已经成功地在集群中发布了jhub。然后,我更改了配置以提取另一个docker映像,如中所述
这一次,在运行相同的旧命令时:
# Suggested values: advanced users of Kubernetes and Helm should feel
# free to use different values.
RELEASE=jhub
NAMESPACE=jhub
helm upgrade --install $RELEASE jupyterhub/jupyterhub \
我试图在GKE之外安装Redis集群(StatefulSet),当我得到pvc时,我得到了
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning ProvisioningFailed 10s persi
k8s:1.13.1
corends:1.2.6
我无法不时地解决服务问题
[root@k8s-kube-master-vm01 ~]# kubectl exec -it tiller-deploy-dc85f7fbd-vkqjs -n kube-system nslookup kubernetes-dashboard
nslookup: can't resolve '(null)': Name does not resolve
Name: kubernetes-dashboar
我有一个SOAP客户端,它将请求发送到保存在kuber集群外部的SOAP服务器
我使用Istio作为服务网格。我知道Istio Ingressgateway可以通过在其上使用TLS或MTL来实现安全,因此我的应用程序不必实现一些安全逻辑。关于这一点,请参阅本文
有没有一种方法可以让出口网关保护TLS的输出流量
例如,我的SOAP应用程序不使用客户端证书与出站SOAP服务器建立安全连接。出口网关可以使用安装在其上的客户端证书或SDS建立TLS连接。您可以配置出口网关,以使用相互TLS(客户端证书)
我的目标是在kubernetes集群中设置jenkins代理pod,需要从私有注册表中提取docker映像。我无法在源代码管理中提供凭据。是否有任何可能的方法从jenkins secrets获取凭据,而不是在podSpec中提供kubernetes密钥?我以前在将图像存储在Azure容器注册表(ACR)中时就这样做过。在这种情况下,我们使用“with credentials”插件和“Azure CLI”插件从ACR推/拉图像
下面是一个类似的示例,但使用docker hub而不是ACR作为私有注
在minikube中有一个nginx入口插件,它使用80和443的主机端口。显然,从外面来的车辆可以很好地到达这些港口。但是,如果您使用带有hostPort:9999的容器创建一个pod,例如telnet$(minikube ip)9999将得到以下结果:
Trying 192.168.99.165...
telnet: connect to address 192.168.99.165: Connection refused
telnet: Unable to connect to remot
我试图将位于不同名称空间中的两个Kubernetes服务链接在一起,如。使用ExternalName类型通过DNS链接它们
在名为“db”的名称空间中,我希望有一个带有数据库的部署。能够拥有1个可由不同项目共享的数据库。拥有一个持久卷
但不知何故,它并不像预期的那样工作
命名空间“db”内的服务:
apiVersion: v1
kind: Service
metadata:
labels:
app: db-srv
name: db-srv
namespace: db
spec
我只是想知道k8s什么时候把一个卷装载到pod上,要装载的目录的大小是否重要,当我说“重要”时,我的意思是大目录是否需要更多的时间
例如,如果下面的file1和dir1非常大,会花费更多的时间吗
volumeMounts:
- name: "config"
mountPath: "/<existing folder>/<file1>"
subPath: "<file1>"
我从浏览器访问公开的服务url时遇到问题。
如图所示,所有吊舱都已成功运行和部署
帮忙?
这是回购协议
可能是因为您的nodejs应用程序进程没有侦听端口3000。请按照以下步骤调试您的服务
我从调试中看到的唯一问题是$nslookup nodejs api Server:84.208.20.110地址:84.208.20.110#53**Server找不到nodejs api:nxdomain pod中/etc/resolv.conf的内容是什么?我建议您使用命令minikube插件启用入口
当我将k8s工作节点添加到主控制平面时,calico节点的pod报告一个错误,表明服务器的ip连接不正常
Warning Unhealthy 36s kubelet, izbp1a13o0oyyyt66ldcdhsj
Readiness probe failed: calico/node is not ready: BIRD is not ready: BGP not established with XX.XX.XX.XX
2020-02-03 08:16:54.740 [INF
我想创建一个角色,允许在命名空间级别对“角色”和“角色绑定”(但不是ClusterRoles或ClusterRoleBindings)执行任何操作
这是我设置的YAML角色,但在将其绑定到服务帐户时,它现在被应用。我做错了什么
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: role-binder
namespace: foo-namespace
rules:
- apiGroups:
- rba
我正在尝试在kubernetes集群中设置两个服务的路由,我想对两个具有特定权重的不同服务进行canary发布。
例如:如果到达/endpoint1,则它将50%的流量路由到service1,对于我要重写的其他50%,则路由到service2。
如果我尝试这个虚拟服务
http:
- match:
uri:
exact: /path1
rewrite:
uri: /path1modified
route:
- destina
标签: Kubernetes
bitnamidiscoursepersistent-volume-claims
目前我在docker中有bitnami对话,数据存储在pod中,我们将pod从1个扩展到多个。现在我面临媒体上传错误,问题是pods数据不同步,所以我必须装载单个卷并在pods之间共享。但我想在kubernetes中使用azure存储类(而不是docker volume)来实现持久卷声明 我想你正在使用你自己的库伯内特清单,因为比特纳米目前不支持对话图表。主要是,据我所知,您需要的是一个可以被许多pod访问的卷
我想你需要读写多个卷,这通常不受云提供商的支持,但让我们在azure中尝试一下
我希
我使用的是具有动态文件名的configmap,定义如下。但是,执行helm模板后,文件名的值为空:
apiVersion:v1
种类:配置地图
元数据:
名称:krb5 configmap
数据:
krb5.conf:|-
{{.Files.Get(printf“%s//krb5-%s.conf”.Values.kerberosConfigDirectory.Values.environment)| indent 4}您的文件中有一个额外的/和额外的缩进。工作示例:
apiVersion: v
我的Cosmos数据库中有一个集合,我想观察它的变化。我有很多文件(官方和非官方)解释如何做到这一点。但有一件事我无法以可靠的方式工作:当我没有任何实例名称的公共引用时,如何接收对多个实例的相同更改
我这是什么意思?嗯,我正在Kubernetes集群(AKS)中运行我的工作负载。我在集群中有数量可变的实例,它们应该观察我的集合。为了让ChangeFeed正常工作,我必须为每个实例指定一个唯一的实例名。我唯一的候选人是pod的名字。它通常以-的形式出现。例如,pod-5f597c9c56-lxw5
我一直在研究与kubeadm相关的链接,试图更改我的Kubernetes群集证书上的密码。问题是我需要禁用DES/3DES,以便此命令失败:
openssl s_client -connect IP:2379 -cipher "DES:3DES" -tls1_2
到目前为止我浏览过的一些链接(如果我把它们全部列出,这篇文章会太长):
(这一切是如何开始的)
我希望更改kube-apiserver配置以使用这些标志(在/etc/kubernetes/manifest
Google Cloud Kubernetes中有以下内容:
3个REST API播客,用于接收帖子并将其发送到通过Websocket连接的客户端
如果其中一个播客被发布,我们希望将此帖子发送到所有其他播客。
问题是:我们如何/在哪里可以找到其他pod的IP?您可以使用下面的找到pod IP并尝试点击IP,但建议您公开一个服务来完成此操作
kubectl get po -n test -o wide
NAME READY STATUS RESTARTS AG
我仔细阅读了Kubernetes关于扩展默认15%的imagefs.available和其他参数的文档,但没有说明如何设置,我安装了RKE(Rancher Kubernetes引擎),配置如下
Kubernets Version:v1.17.5
OS: Ubuntu 18.04.4 LTS
Container Runtime: 19.3.9
顺便说一句,文档没有清楚地解释如何扩展默认驱逐,所以我来这里是想知道是否有人可以告诉我如何扩展它
我也试过kubelet命令行,但我得到了这个
I0903
我们有使用Go库向prometheus写入状态的组件,
我们可以在普罗米修斯的用户界面上看到数据,
我们在K8S集群之外有组件,需要从中提取数据
普罗米修斯,我怎样才能公布这些指标?是否有我应该使用的组件?您可能需要查看普罗米修斯文档的部分
联邦允许普罗米修斯服务器刮取选定的时间序列
来自另一台普罗米修斯服务器。通常,它用于实现可伸缩的Prometheus监控设置,或将相关指标从一个服务的Prometheus拉入另一个服务
它需要使用入口或节点端口将Prometheus服务暴露出集群,并配置中心
我是Kubernetes部署的新手。
我可以从外部连接到卡夫卡集群,但无法从集群内部进行同样的连接
以下是我的配置:
卡夫卡经纪人:
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: crd-instrument
name: kafkaservice
spec:
replicas: 1
selector:
matchLabels:
app: kafkaservice
templat
我在Ubuntu18-04上研究hyperledger区块链和Kubernetes(minikube)。在我的网络中,有两个组织,每个组织有一个对等点,订购者类型为Solo。我在minikube上部署的整个网络。链码安装和实例化在pods上成功完成。之后,我尝试使用SDK调用
我使用下面的代码作为invoke.js
'use strict';
const { Gateway, Wallets } = require('fabric-network');
const fs = require('
我在GCP上使用K8s
这是我的部署文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: simpleapp-direct
labels:
app: simpleapp-direct
role: backend
stage: test
spec:
replicas: 1
selector:
matchLabels:
app: simpleapp-direct
vers
我是这样安装我的应用程序的:
helm install my app my application/--set externalName.namespace=app layer
检查吊舱和服务,所有设备都安装正确
然后,我尝试了一个试运行,希望得到一个冲突,但它只是简单地打印出了YAML和一些关于上一次安装的信息
helm install my app my application/--set externalName.namespace=app layer--dry run
上述资料已印妥
我使用的是0.14.7地形版本和1.3.2头盔提供程序
我正在尝试使用不同的文件值和不同的命名空间部署同一个图表应用程序,就像完全独立的应用程序一样:
resource "helm_release" "kong-deploy" {
for_each = var.country
chart = "./helm-charts/kong"
name = "kong"
names
在基于operator sdk的Kubernetes操作符中,当CR规范更新为kubectl apply时,您知道如何编写代码来同步CR资源吗?能否提供一些代码示例?主要取决于您如何部署。默认框架提供了基于Kustomize的部署结构,因此Kustomize build config/default | kubectl apply-f。在makedeploy之后,这也为您提供了包装。还有一个makeinstall,仅用于安装生成的CRD文件。实现一个基于go-lang的操作符是相当复杂的,我建议
我想将GitLab CI与Kubernetes集成,需要填充config.toml文件。您知道如何生成这些证书吗
证书文件:可选Kubernetes apiserver用户身份验证证书
密钥文件:可选Kubernetes apiserver用户身份验证私钥
ca_文件:可选Kubernetes apiserver ca证书
所有公共舵图值文件在其主分支上都有可配置的部分注释,如入口、OAuth等
ingress:
enabled: false
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: chart-example.local
paths: []
tls: []
# - secretN
标签: Kubernetes
kubernetes-helmapache-supersetsuperset
我正在尝试使用Helm并按照描述的官方过程在Kubernetes集群(AWS EKS)上安装Apache超集
由于我想将RDS和ElastiCache分别用于数据库和缓存,而不是捆绑的postgresql和redis,我需要覆盖默认值中的几个值。yaml因此我复制了默认值
bash-3.2$ helm show values superset/superset > custom-values.yaml
编辑了几个部分,如
postgresql:
##
## Use the Pos
我们使用Autoscaling/v2beta1API运行pods。为了利用基于自定义指标的HPA,我们希望对一些POD使用Autoscaling/v2beta2。由于还有其他一些POD不急于升级,因此我们希望将它们保留在同一集群中yaml中的自动缩放/v2beta1。我想这应该没有问题。这样使用时是否有任何陷阱?是的,不会有任何问题,但在同一部署上或在同一吊舱上创建不同的HPA可能会造成判断问题
否则,如果存在自定义度量要求,则使用不同API版本的HPA将起作用。通常已经回答了您的问题。我将添加
我正在实现一个基于Kubernetes的解决方案,在该解决方案中,我将基于动态度量自动调整部署。我正在针对一个工作负载运行这个具有自动缩放功能的部署15分钟。在此期间,由于部署自动缩放决策,将动态创建和删除此部署的POD
我感兴趣的是保存(供以后检查)在自动缩放实验过程中发生的每个动态创建(和可能删除)的pod的日志
如果部署具有类似于app=myapp的标签,我是否可以运行以下命令来存储部署的所有日志
kubectl logs -l app=myapp > myfile.txt
是否