当我在kubernetes中创建服务时,我看到controller manager将创建一个安全组和minion安全组的新规则。有一些警告:
W1028 05:34:44.104402 1 aws.go:1755] Failed to create tags (too many attempts): InvalidParameterValue: Value ( '' ) for parameter Tag key is invalid. Tag key cannot be null
如果我的kubernetes群集中有3个仆从,有没有办法让replication controller在仆从1上创建20%的POD,minion2的50%和Minion3的30%?我认为唯一的方法是使用--max pods选项配置每个节点。我认为唯一的方法是使用--max pods选项配置每个节点。是的。但是您必须用自己的逻辑编写自定义。是的。但是您必须使用您的逻辑编写自定义。不幸的是,现在的答案是否定的。最简单的方法是创建三个复制控制器,每个控制器都有所需数量的副本,每个控制器都有一个使用no
使用k8s 1.1版,我可以复制k8s启动配置,更改实例类型,然后将我的asg指向新的lc,以将其他实例类型添加到集群中
在版本1.2a8中,有4个存储设备不进行复制…例如“DeviceName”:“/dev/sdc”,“VirtualName”:“ephemeral0”。有人知道在1.2中将不同类型的实例添加到k8s群集的最佳方法吗?
看起来我必须从aws cli更新lc的块设备映射
…由于您无法修改lc,我必须描述k8s one并根据该描述创建一个新的lc-这有点长。看起来,因为1.2现在正
我正在通过网络运行Kubernetes。在本教程之后,我使用kubectl运行Nginx--image=Nginx--port=80启动了一个Nginx POD。但是,这似乎会创建孤立的吊舱(没有复制控制器)kubectl get rc不返回任何内容,kubectl Descripte pod nginx-198147104-kqudh显示复制控制器:无(kubectl版本“v1.2.0+5cb86ee”显示控制器:ReplicaSet/nginx-198147104,但将其缩放为0只会导致创建
当我尝试在Stackdriver Monitoring中创建警报策略时,我的自定义指标不会显示在下拉列表中。当我尝试在Stackdriver监控仪表板中添加图表时,它们会显示出来。我还需要做些什么才能使这些自定义指标具有可警报性
这些自定义度量是使用kubernetes上的heapster创建的。
我还在参加Stackdriver高级试用
下面是创建图表时资源类型列表的屏幕截图
以下是创建警报策略条件时资源类型列表的屏幕截图
您应该可以访问下拉列表中相同自定义指标的警报,并可以选择“自定义指标
K8S管理多个环境(QA、登台、生产、开发等)的最佳实践是什么
例如,假设一个团队正在开发一个需要部署一些API以及前端应用程序的产品。通常,这至少需要两种环境:
暂存:在发布给客户之前用于迭代/测试和验证
生产:这是客户端可以访问的环境。应包含稳定且经过良好测试的功能
那么,假设团队使用Kubernetes,那么托管这些环境的最佳实践是什么?到目前为止,我们考虑了两种选择:
为每个环境使用K8s群集
只使用一个K8s集群,并将它们保留在不同的名称空间中
(1) 似乎是最安全的选择,因为它将
1.6+看到围绕RBAC和ABAC的许多变化。然而,有点奇怪的是,在默认情况下,无法像以前一样访问仪表板等
访问将导致
User "system:anonymous" cannot proxy services in the namespace "kube-system".: "No policy matched."
网站上的文档很多,但并没有真正说明如何作为集群的创建者实际获得访问权限,从而成为集群管理员
认证我为群集管理员的实用方法是什么?到目前为止,最简单的方法是使用凭据 来自/etc
我们正在改用Kubernetes。通过内置dns访问k8s部署中的其他部署服务非常简单。因此,如果我有一个名为app1的pod/服务和一个名为app2的pod/服务,app1需要调用app2,它可以只使用“app2”,k8s dns发挥其魔力,一切正常。这很好,因为我们不需要为所有环境提供一个app1\u主机和app2\u主机的配置管理开销
这也适用于本地使用minikube。如果app1和app2部署到minikube中,它们可以通过服务名称(与应用名称匹配)相互引用
然而,我遇到的问题是地方
当您运行:kubectl get svc-n default时,您将拥有一个类型为ClusterIP的kubernetes服务
这项服务的目的是什么?任何推荐信,不胜感激
我在Minikube跑步
xyz:Kubernetes _$ kubectl describe svc/kubernetes
Name: kubernetes
Namespace: default
Labels: component=apiserver
我使用Kubeadm安装了Kubernetes HA
OS:Centos7
K8S版本:1.9.6
6台虚拟机:2台主机、3台工人和一台LoadBanacer(nginx)
我想使用LoadBalancer Ip addess访问仪表板,我如何才能做到这一点?有这方面的教程吗
谢谢您不能使用IP,但可以创建一个入口文件,该文件将指向dashboard.example.com到您的dashboard服务的路径。
不建议使用此方法,因为这会将仪表板向外部世界打开。
但是use可以使用身份验证代理对用
我使用kops在AWS中创建了一个八卦集群,这意味着我的集群名称以k8s.local结尾(clusters.test.k8s.local待执行),
在我尝试创建一个部署之前,一切都很正常,在该部署中,pod名称需要在最后包含一个域(api manager.iot.test.co.nz)
我知道,它无权创建不符合本regex要求的POD:
'[a-z]([-a-z0-9]*[a-z0-9])?'
我有办法做到吗
我尝试在template->spec下添加主机名,但它有相同的限制(regex)
这
我已经使用kops启动了kubernetes集群。它正在工作,我开始面临以下问题:
kubectl get pods
The connection to the server localhost:8080 was refused - did you specify the right host or port?
我如何解决这个问题?
看起来kubernetes apiserver没有运行,如何使其工作
kubectl run nginx --image=nginx:1.10.0
error:
标签: Kubernetes
gcloudkubectlgoogle-kubernetes-engine
对于我们的用例,我们需要通过NodePort访问许多服务。默认情况下,节点端口范围为30000-32767。使用kubeadm,我可以通过--service node port range标志设置端口范围
我们正在使用Google Kubernetes引擎(GKE)集群。如何设置GKE集群的端口范围?在GKE中,控制平面由Google管理。这意味着您不能自己在API服务器上设置东西。令人遗憾的是,我相信您可以使用kubemciCLI工具来实现它,请参阅
我正在尝试创建一个自动管道,它将在一个命名空间上一个接一个地运行多个pod。当前的问题是,在两次运行之间,我想等待一个pod被完全删除,然后再运行下一次。有没有办法检查给定的pod是否已完全删除
当前脚本:
kubectl delete -f pod.yaml
sleep 10
kubectl create -f pod.yaml
error when creating "pod.yaml": object is being deleted: pods "test-pod" already ex
在Kuberenetes中,我可以从prometheus获得每个名称空间的所有传出流量。但我需要将其划分为内部和外部流量
有人知道如何为Kubernetes中的每个名称空间获取外部传出流量吗?希望至少可以通过该插件解决带宽控制问题。我会把结果写下来。
目前,我正在使用loadbalancer类型进行部署和创建服务。我可以通过创建的ELB访问POD。然后使用路线53,我使用别名将ELB与k8-test.abc.com连接。下面是片段
apiVersion: v1
kind: Service
metadata:
name: %APP_FULL_NAME%-service-lb-http
labels:
appname: %APP_FULL_NAME%
stage: %APP_ENV%
component: app-
我已经通过kubeadm建立了kubenetes集群。现在我想设置istio,但是我发现istio文档没有包含关于kubeadm的指南。
它包括minikube和其他云提供商的说明,如何为kubeadm设置istio?屏幕截图中的这些标题不是在这些平台上安装istio的说明,它们只是在不同平台上安装Kubernetes,这是istio安装的先决条件。
如果您已经安装了Kubernetes集群(甚至通过kubeadm),只需遵循Istio
我删除了一系列IAM策略,并认为这会阻止我在谷歌云(通过UI)中创建k8s集群
每次单击“创建群集”,它都会处理一段时间,然后挂断并抛出以下错误:
Create Kubernetes Engine cluster "standard-cluster-1"
Just now
MyProject
Google Compute Engine: Required 'compute.zones.get' permission for 'projects/<MY_PROJECT_ID>/zone
我是kubernetes的新手,不确定我缺少什么先决条件才能让它工作
我运行了以下命令
kubectl create -f k8s-pod.yml
答案是
与服务器localhost:8080的连接被拒绝-是吗
指定正确的主机或端口
k8s pod.yml
apiVersion: v1
kind: Pod
metadata:
name: app
labels:
language: go
env: test
spec:
containers:
- nam
是否有可能在k8s的所有命名空间中动态部署服务
现在,如果端口不再使用,k8s将删除glusterFS端点(依赖于ns)。
例:
因此,我为端口1制作了一个svc,以便一直使用,这样我就不会在任何ns中丢失/删除端点
apiVersion: v1
kind: Service
metadata:
name: glusterfs
spec:
ports:
- port: 1
每次有人创建一个新名称空间时,动态部署上述服务将非常有趣。守护程序用于每个节点只部署一个副本
说到您的问题,为什
我正在尝试获取为特定服务提供服务的播客列表
有3个吊舱与我的服务相关
我试图执行下面的命令
oc描述svc my-svc-1
我希望看到与此服务相关的播客。但这并没有出现。What命令仅获取与服务关联的pod列表。服务使用选择器选择pod。查看服务的选择器,并使用该选择器获取POD。对于kubectl,命令如下所示:
kubectl get pods --selector <selector>
另一个问题,你能建议我如何列出以某个字符串结尾的服务吗。我正在尝试这样做oc get s
我在最后一天左右与下面的错误作斗争。有什么想法请帮忙
以下是我的配置:
安装:
ISTIO_VERSION=istio-1.2.6
GATEWAYS=gateways
kubectl create ns istio-system
helm install $ISTIO_VERSION/install/kubernetes/helm/istio-init \
--name istio-init \
--namespace istio-system
helm install $
我有一个docker映像,其中包含一个nodejs应用程序,我通过kubernetes部署了它,我有3个吊舱。我需要的是将每个部署的名称传递给相关的POD,这样我就为每个部署都有一个唯一的id,该id仅对该部署是唯一的,并且该部署中的所有POD都可以使用该id。
这一条也没有多大帮助:
我知道,事实上,我可以在以下方面做到:
env:
- name: unique id
value: {{uuidv4}}
但我更希望:
env:
- name: deployment name
我是Kubernetes的新手,currenlty我正在研究Kubernetes的评测。我想在Kubernetes中记录部署过程创建pod、重新启动pod等,并想知道每个过程所需的时间和资源RAM、CPU,例如下载映像、构建部署、pod等
有什么方法或工具可以让我记录这个过程吗?谢谢大家! 您可以在pod的事件提要中找到这些内容,请检查kubectl Descripte pod。如果不了解某些组件和深入的编码,我不确定您是否能够实现您想要的结果
可以从Kubernetes检索到什么:
有关活动的
主节点无法通过虚拟ip访问服务或pod,网络插件法兰绒工作正常
[root@www ~]# clear
[root@www ~]# kubectl get pod --all-namespaces -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS
标签: Kubernetes
google-kubernetes-enginegoogle-cloud-internal-load-balancer
我有一个K8s部署在GKE中运行,它连接到一个内部负载平衡器服务,该服务为VPC子网分配一个IP地址。当我在子网中启动单个计算虚拟机时,我可以使用ILB IP地址访问部署,但我无法访问集群内的部署,也无法从另一个命中相同IP地址的GKE集群访问部署
我不确定我遗漏了什么,或者ILB是否不是这个用例的正确工具。最终目标是在同一子网上的不同GKE集群之间进行通信。如果您可以从VM而不是集群进行访问,这很奇怪。群集、VM、ILB必须位于同一区域和子网中
在这里[1]您还可以找到一个关于如何为GKE创建
重启集群中所有POD的最佳方式是什么?我在想,在kubernetes中设置一个cronjob任务,以便在正常的基础上执行此操作,并确保集群的负载均衡,但是在正常的基础上执行此操作的最佳实践是什么?另外,作为一次性任务,最好的方法是什么?这是个坏主意。改为通过实际分析有选择地进行检查:)
但是也就是说,kubectl delete pod--all--all名称空间或类似的名称空间。如果你想从CronJob运行它,这意味着你需要在里面有管理员的kubeconfig,以便从pod连接到kube ap
我目前正在为2.4.6版的二手elasticsearch的k8s设置苦苦挣扎:
使用引导禁用内存交换。内存锁定不起作用。内存保留失败,出现已知错误:
[2020-05-22 21:12:22,762][WARN ][bootstrap ] Unable to lock JVM Memory: error=12,reason=Cannot allocate memory
[2020-05-22 21:12:22,764][WARN ][bootstrap
给定一个kubernetes群集,该群集具有:
我喜欢使用metriccontainer\u memory\u usage\u bytes,但选择bydeployment\u name而不是pod
如果deployment\u name=foo没有使用deployment\u name=foo-bar的部署,那么像container\u memory\u usage\u bytes{pod\u name=~“foo-.+”}这样的选择器非常好
我希望通过度量kube\u pod\u容器\u
在minikube上配置Kubernetes部署时遇到一些问题,请使用本地存储。我正在尝试设置一个referencedb实例,该实例将把一个目录从minikube VM装载到referencedb Pod。我的设置如下
存储
因此,我定义了一个storageClass的local storage类型,如在线教程中所述。然后,我创建一个PersistentVolume,它要求底层主机上的/mnt/data路径提供10GB的存储空间。我在minikube虚拟机上创建了此目录
$ minikube s
标签: Kubernetes
google-kubernetes-enginegoogle-cloud-load-balancer
我想在谷歌云中更改我的LoadBalancer ingress nginx控制器的IP地址。我现在已经通过LoadBalancer分配了IP地址。请看屏幕截图。不幸的是,它没有被GKE采用。为什么?那是虫子吗?
我已经在我的GKE测试集群上验证了这一点
当您启动时,它不会分配给任何虚拟机。根据创建群集的方式/保留ip(标准版或高级版),可能会出现如下错误:
Error syncing load balancer: failed to ensure load balancer: failed to
我需要在Openshift 3.11上暂时禁用生产环境中的活动性探测。
是否有必要重新部署吊舱,还是进行热插拔改造
Thanx提前不幸的是,目前没有动态禁用探测的功能。
查看此讨论了解更多详细信息,
如果你想禁用它,你需要在没有探测器配置的情况下重新部署pod。thanx对于你的答案,我将计划重新部署
我的.yaml看起来像这样:
apiVersion: batch/v1
kind: Job
metadata:
name: foo
namespace: bar
spec:
template:
spec:
imagePullSecrets:
- name: $DOCKERHUB_REGISTRY_SECRET
containers:
- name: django
image: $DOCKERHUB_U
我目前正在从事一个使用普罗米修斯服务器(而不是普罗米修斯操作员)的项目。
我们希望引入一种无需重新部署就能修改普罗米修斯规则的方法
我对容器和Kubernetes完全不熟悉,有点不知所措,所以我希望有人能让我知道我是否在浪费时间来实现这一目标
到目前为止,我想做的是:
将PrometheusRules存储在configmap中
将规则的配置映射应用于Prometheus服务器配置
为Prometheus服务器创建一个可以修改此配置映射的侧车
sidecar将公开一个API,因此用户将拥有规则的C
在OpenDistro Helm README.md中,定义:
这意味着kubernetes集群外部有一个DNS主机名。但是,使用默认值而不使用自定义证书时生成的名称会导致:
# If no custom configuration provided, default to internal DNS
- name: ELASTICSEARCH_HOSTS
value: https://opendistro-es-client-service:9200
它来自kiba
在k8s集群上,我将fluentd作为守护程序运行,并使用尾部插件从名称空间收集容器日志并将其发送到弹性集群。。。相当标准的设置
<source>
@type tail
path /var/log/containers/*_default_*.log, /var/log/containers/*_test-namespace_*.log
pos_file /var/log/ns-containers.log.pos
read_lines_limit 100
tag
我正试图在Kubernetes集群上设置Heapster/InfluxDB/Grafana。看起来Heapster正在生成数据,但没有将其发送到XDB。当我查看Heapster pod中eventer容器的容器日志时,日志如下所示:
E1020 18:43:20.006608 52 influxdb.go:147] Failed to create infuxdb: failed to ping InfluxDB server at "monitoring-influxdb:8086"
我有一个部署,在端口9001上托管一个网站,并附带一个服务。我想允许任何人(从集群外部)能够连接到该站点
任何帮助都会被理解。当你写到这不是一个云部署时,你需要考虑如何正确地将这个暴露给世界。首先,为您的部署创建一个NodePort类型的服务。这样,节点将在高端口上公开该服务
根据您的网络,此时您需要在网络中配置负载平衡器,以将某些IP:80的流量转发到您的节点高节点端口,或者例如在DeamonSet中部署HAProxy,并使用hostNetwork:true将80代理到您的节点端口
部署Ngi
我使用[1]在Kubernetes集群中部署了一个Openwhisk集群,对于我的应用程序,我希望访问内部couchDB数据库
从功能内部
从外部位置。我在下面添加了svc列表
我尝试了几种方法,但似乎无法访问couchDB数据库。我将couchDB服务从ClusterIp更改为NodePort。如果您有以下方面的帮助,我们将不胜感激。假设节点的IP为123.45.67.89
在函数中使用哪个主机:端口?我原以为是123.45.67.89:30641,但没用
什么主机:像curl调用一样从外部使
Kubernetes服务可以并行处理的最大请求数是多少。我将根据输入请求为POD提供自动缩放功能,但服务在某个时间点可以处理的最大请求数是否有任何限制。Kubernetes中的服务只是内核中的路由配置。当您调用服务URL/IP时,您的本地内核将把请求转发到一个随机Pod
因此,请求限制由集群中单个节点可以处理的请求数定义 谢谢你,卢卡斯。我想更清楚地了解这一点。这是否也适用于所有外部http请求?假设我使用一个Nodeport服务,这个Nodeport服务一次可以处理的外部http请求的总数取决
基本上,我试图通过kubeadm在GCE上部署一个集群,支持StorageClass,而不使用Google Kubernetes引擎
我在东京部署了一个带有主节点的集群,在香港、台湾和俄勒冈部署了3个工作节点。
NAME STATUS ROLES AGE VERSION
k8s-node-hk Ready <none> 3h35m v1.14.2
k8s-node-master Ready master
在我们的CI管道中,我们已经切换到使用基于约定的主机名,主要用于基于PR的动态开发环境。由于其他服务指向这些旧主机名,此新功能要求我们尊重在Helm图表中设置的旧主机名
我们希望在现有主机名列表中附加或前置基于约定的主机名,而不覆盖任何值
目前,我们已经找到了一个解决办法;但是,我们希望找到一个更清洁的解决方案。该解决方法允许我们设置service.hostnames[10]=k8s-myapp-prod.website.com,其中索引10足够高,不会与图表中的主机名冲突
我们只希望这里有2个
以下是我的一个节点在基于请求的分配方面的状态
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 374m (4%) 3151m
我创建了csr并批准了它-
$ kubectl get csr
NAME AGE REQUESTOR CONDITION
parth-csr 28m kubernetes-admin Approved,Issued
仅使用用户名为parth和group devs的kubectl创建证书
Issuer: CN=kubernetes
Validity
Not Before: Dec 16 18:
我有一个kubernetes集群在多台本地裸机/physcal机器上运行。
我想在集群上部署kafka,但我不知道如何在配置中使用strimzi
我尝试按照快速入门页面上的教程进行操作:
我的动物园管理员吊舱在2.4点待处理。创建群集:
我的豆荚:
kubectl describe -n my-kafka-project pod/my-cluster-zookeeper-0
Name: my-cluster-zookeeper-0
Namespace: my-kaf
我发现了很多关于如何授予helm在特定名称空间中创建资源的权限的信息
我正在尝试看看是否可以在fly上使用随机名称创建名称空间,然后使用helm安装和删除名称空间中的资源
我的想法是创建一个名称为Fixedsuffix randomprefix的名称空间,然后允许helm在其中创建所有资源。这可能吗
我可以创建clusterrole和clusterrolebinding,以允许tiller的serviceaccount创建名称空间,但我无法弄清楚如何拥有一个可以在特定名称空间中创建资源的serv
我有一个具有入口资源的应用程序,如下所示
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ $fullName }}-stateful
labels:
app: oxauth
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.org/ssl-services: "oxtrust"
nginx.ingress.ku
我在Helm部署中设置以下环境变量,如下所示
name: SERVER_ENDPOINT
value: {{ .Values.server.dev_proxy_endpoint }}
但是希望插入值变量的环境部分dev,如下所示
name: SERVER_ENDPOINT
value: {{ .Values.server. {{ .Values.environment | lower }} _proxy_endpoint }}
这可能吗
对第一条评论的答复
我通过在文件顶部创建一个新的定义尝
我正在使用kubernetes v1.18,并使用印花布作为我的CNI插件,这是印花布吊舱状态删除未更新吊舱:
[root@localhost~]kubectl获取吊舱-所有名称空间-o宽
名称就绪状态重新启动老化IP节点指定节点就绪门
calico-kube-Controller-75d555c48-lt4jr 1/1运行0 2d12h 10.11.102.134 localhost.localdomain
印花布节点-6rj58 1/1运行0 37h 192.168.31.30 k8ssla
我正试图找到在大量Kubernetes资源上批量编辑注释的最佳方法。看起来Kustomize可能是最好的选择:
这些资源已经是kustomization.yaml的一部分
然后,我可以使用新的或修订的注释编辑kustomization.yaml
kubectl apply-k./根据需要使用新注释更新所有相关资源
不幸的是,这使得所有的pod终止并重新启动,这有时比我希望的要长。在没有对YAML进行其他更改的情况下,在没有Kustomize的情况下应用注释不需要重新部署,我很想做一些类似的事情,