Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
 Kubernetes_IT技术博客_编程技术问答 - 「Fatal编程技术网」

如何从pod容器中访问Kubernetes api?

我以前会卷曲 https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1beta3/namespaces/default/ 作为我的基本URL,但在kubernetes 0.18.0中,它给我“未经授权”。奇怪的是,如果我使用API机器的外部IP地址(http://172.17.8.101:8080/api/v1beta3/namespaces/default/),它工作正常。在官方文档中,我发现: 很明显,我丢

kubernetes通过ubuntu的日志记录和监控创建集群

我正在digitalocean ubuntu机器上安装kubernetes群集。我启动了集群并按照此操作运行。在设置过程中,启用节点日志记录、启用集群日志记录和启用集群DNS变量在配置默认值中设置为true 但是,没有为elasticsearch/kabana创建的控制器和服务。我确实需要为skydns手动运行deployAddon.sh,是否需要为日志记录和监视执行相同的操作?或者我在默认配置中遗漏了什么。默认情况下,日志记录和监视服务不在默认名称空间中 您应该能够看到服务是否使用kubect

Kubernetes 谷歌容器启动脚本

我在google容器中创建了/usr/startup.sh脚本,希望在每个pod启动时执行它 我试着通过yaml中的命令来实现它,如下所示 命令:“sh/usr/start.sh” 命令:[“sh”、“-c”、“/usr/start.sh”] 请告诉我是否有任何方式可以在google container/pod中启动时执行已定义的脚本。您可能需要查看postStart 可以在以下列表中找到一个示例: 以下是: 您可能需要查看postStart 可以在以下列表中找到一个示例: 以下是: 启动脚本在

spinnaker是否支持针对多个Kubernetes群集?

我们为每个环境使用单独的专有网络。spinnaker是否支持针对不同的Kubernetes集群?添加临时环境是否可行?Spinnaker支持多个Kubernetes群集,每个群集都作为Spinnaker配置中的“帐户”添加。配置的帐户在部署时显示为选项,每个应用程序的服务器组汇总到它们所属的帐户下 可以更改该配置并在运行时刷新它,但这将涉及编辑支持Spinnaker的Clouddriver组件的磁盘上yaml文件并触发/config刷新端点。您可以使用类似于此的配置。这里我添加了2个k8s帐户,

Kubernetes 法兰绒与etcd v3.0的兼容性

我计划将Kubernetes实例迁移到ETCDv3。 您知道Flannel是否可以与etcd v3一起使用吗?从我的部署过程来看,Flannel现在(2019/09/06)与etcd v3.0不兼容。我正在寻找一种方法 处理这个问题,当我启动flannel时,它会抛出以下错误: E0908 20:05:41.432715 28891 main.go:382] Couldn't fetch network config: 100: Key not found (/kube-centos)

Kubernetes Deis工作流是否可以从ConfigMap读取值?

我已经在GKE集群中安装了Deis Workflow v.2.11,我们的一些应用程序共享相同的值,比如代理URL和证书。我可以使用这些值将它们放入环境变量中,甚至可以放入.env文件中。 但是,对于每个新应用程序,我都需要创建一个.env文件,其中包含共享值,然后调用 deis config:push 如果其中一个共享值发生变化,我需要调整每个应用程序的每个配置并重新启动它们。我想修改ConfigMap中的值一次,更改后,Deis重新启动应用程序 有人知道是否可以从Kubernetes Co

Kubernetes:带有gce代理的initContainer?

在运行我们的应用程序之前,我需要更新我的数据库架构。基于此,我决定使用init容器来完成这项工作 因为我的SQL实例是托管的Google Cloud SQL实例,所以我需要gce proxy才能连接到数据库。我的初始容器如下所示: initContainers: - name: cloudsql-proxy-init image: gcr.io/cloudsql-docker/gce-proxy:1.09 command: ["/cloud_sql_proxy"

Kubernetes “Kubectl获取节点返回”;服务器没有';“没有资源类型”;节点“&引用;

我安装了Kubernetes并执行了kubeadm init,还从worker加入。但是当我运行kubectl get节点时,它会给出以下响应 服务器没有资源类型“节点” 这里可能有什么问题?无法在/var/log/messages中看到任何内容 这里有什么提示吗?在我看来,身份验证凭据设置不正确。您是否将kubeconfig文件/etc/kubernetes/admin.conf复制到~/.kube/config?如果使用kubeadm,则应将API服务器配置为在6443上运行,而不是在808

Kubernetes Kubectl apply不更新POD或部署

每当对图像进行更新时,我都会使用CI来更新kubernetes集群。每当映像被推送并具有最新标记时,kubectl就会应用现有的部署,但不会更新任何内容 这就是我们要做的 $kubectl apply--record--filename/tmp/deployment.yaml 我的目标是在运行apply时执行滚动部署 apiVersion:extensions/v1beta1 种类:部署 元数据: 名称:api 规格: 副本:1份 模板: 元数据: 标签: 应用程序:api 规格: 容器: -名

Kubernetes-将jks文件存储在secrets或configMap中

我有一个keystore.jks文件,我需要将它作为一个env变量传递给docker进程 我使用下面的命令将文件作为机密存储 kubectl创建机密通用ssl密钥库证书 --从文件=./keystore.jks 在my deployment.yaml中使用上述秘密,如下所示 { "name": "SERVER_SSL_KEYSTORE", "valueFrom": { "secretKeyRef": {

kubernetes如何仅为副本编写部署yaml

我有一个pod yaml文件(见下文)。它有我想要的所有属性,除了副本属性。因此,我必须编写部署yaml apiVersion: v1 kind: Pod metadata: name: app-ykt labels: app: app-ykt purpose: ykt_production spec: containers: - name: app-ykt image: app imagePullPolicy: IfNotPresent

如何在kubernetes StatefulSet中运行零停机应用程序

我希望在Kubernetes中运行一个有状态的应用程序(对特定文件夹执行读/写操作),而不依赖于单个实例 我可以为此要求使用StatefolSet吗 是否有必要使用共享文件系统(例如:GFS、EFS…) 如果是,是否会影响我的应用程序的性能 答案将取决于以下因素:a。该文件夹是否与应用程序共享?B同一容器的多个实例是否需要访问同一文件夹,或者它们可以拥有自己的本地副本?在这个用例中你需要切分吗?是的,我需要共享。但如果使用专用卷(例如:EBS),将导致单点故障。如果我使用EFS/GFS,是否会导

Kubernetes 通过DNS Ping状态集的吊舱

我正在集群配置中设置VerneMQ(MQTT代理)。因此,我将在一个有状态集合中启动4个副本。显然,VerneMQ希望通过DNS与群集中的其他代理通信,如下所示: echo "Will join an existing Kubernetes cluster with discovery node at ${kube_pod_name}.${VERNEMQ_KUBERNETES_SUBDOMAIN}.${DOCKER_VERNEMQ_KUBERNETES_NAMESPACE}.svc.clust

调试Kubernetes节点终止

昨晚我的Kubernetes集群对我的2个节点进行了加密,我无法了解发生了什么 kubectl Descripte nodes对发生故障的节点提供了以下信息 Conditions: Type Status LastHeartbeatTime LastTransitionTime Reason Message ---- ----

Kubernetes-StatfulSets,如何将有状态实例绑定到节点?

我正在打包一个应用程序,以便在prem Kubernetes集群上部署和运行。到目前为止,一切都很好,但我在一个基本上是数据库的组件上苦苦挣扎。此组件需要3个主节点和2个副本。有趣的是,主节点本身被视为副本,并且需要进行相应的配置(这是为了进行分片)。因为这是在prem上,所以我需要在3个物理主机上平衡主节点和副本对,每个主机上运行唯一的节点和副本对 这是布局的示例,其中N==主节点,R==副本 Host1 Host2 Host3 N1R1 N2R1 N3R1 N3R2 N1

如何使用模板生成器生成kubernetes yaml文件?

我是kubernetes的新手,我有一个基本问题 我的理解是,我们可以使用“kubernetes run”命令生成yaml模板 但当我试着做同样的事情时,它没有起作用 不确定我的理解是错误的还是命令中有什么错误您需要指定所有必需的标志,在本例中,--image=…您只是缺少一些标志 命令应该是 kubectl run <podname> --image <imagename:tag> --dry-run -o yaml --generator=run-pod/v1

Kubernetes 在中设置内存请求小于限制的用例是什么。K8s

我理解将CPU请求设置为小于限制的用例-如果实例有空闲CPU,则允许每个容器中的CPU突发,从而导致最大CPU利用率。 然而,我真的找不到对内存执行相同操作的用例。大多数应用程序在分配内存后不会释放内存,因此有效地应用程序将请求最多“限制”内存(这与设置request=limit的效果相同)。唯一的例外是在已经分配了所有内存的实例上运行的容器。我真的看不出这有什么好处,缺点是更不确定的行为,很难监控(一个容器比另一个容器具有更高的延迟,这是由于GC太重)。 我能想到的唯一一个用例是内存缓存中的阴

有没有更好的方法等待Kubernetes完成作业?

我当前使用以下脚本等待作业完成 ACTIVE=$(kubectl get jobs my job-o jsonpath='{.status.ACTIVE}') 直到[-z$有效];do ACTIVE=$(kubectl get jobs my job-o jsonpath='{.status.ACTIVE}');睡眠30分钟;完成 问题是作业可能失败,也可能成功,因为它是一个测试作业 有没有更好的方法达到同样的效果?是的。正如我在中指出的,您可以使用该命令。谢谢。是否可以等待多种条件?还是消极

Kubernetes ingress nginx grafana仪表板普罗米修斯数据为空

我只是使用本教程完全设置了prometheus和grafana仪表板 我试图查询普罗米修斯的一些东西,它成功地绘制出了这幅图。但当我连接到普罗米修斯数据访问我的Grafana仪表板时,它会返回如下图所示的空图表 我是否遗漏了该步骤中的某些内容?可能在导入仪表板之前,您没有在Grafana中创建数据源。手册中没有规定,但没有它仪表板将无法正常工作 如何在Grafana中创建数据源: 开放式配置(gear)->数据源 按“添加数据源” 选择普罗米修斯 指定Prometheus服务器URL:(例如:

Kubernetes 如何检查pod是否应用了网络策略?

我试图限制我的openvpn,以允许访问内部基础设施,并仅通过“开发”名称空间对其进行限制,因此我从简单的策略开始,该策略拒绝所有出口流量,看不到任何效果,也看不到集群对其应用的任何反馈,我已经阅读了所有正式和非官方文档,没有找到解决方案,以下是我的策略: kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: name: policy-openvpn namespace: default spec: podSel

Kubernetes WaitForFirstConsumer PersistentVolumeClaim在绑定前等待创建第一个使用者

我在一个节点中设置了一个新的k8s,它被污染了。但是当我试图创建一个简单的PostgreSQL时,PersistentVolume无法成功创建 下面有一些详细信息 StorageClass是从官方页面复制的: StatefulSet是: kind: StatefulSet apiVersion: apps/v1beta1 metadata: name: postgres spec: serviceName: postgres replicas: 1 ... volumeCl

Kubernetes 无法覆盖GKE中的默认Pod安全策略

我已经在本地的minikube中成功地实现了PodSecurityPolicys(PSP),并且在将其移植到GKE时遇到了麻烦。我现在的目标很简单-->不允许UID为0或具有特权访问的播客。 我的PSP很简单: apiVersion: extensions/v1beta1 kind: PodSecurityPolicy metadata: name: default-psp spec: privileged: false runAsUser: rule: MustRunAsN

如何在kubernetes中切换名称空间

比如说,我有两个名称空间k8s-app1和k8s-app2 我可以使用下面的命令列出特定名称空间中的所有pod kubectl get pods -n <namespace> kubectl获取吊舱-n 我们需要将名称空间附加到所有命令,以列出各个名称空间中的对象。有没有一种方法可以设置特定的名称空间并列出对象而不显式地包含名称空间?我可以使用以下步骤切换名称空间 kubectl config set-context $(kubectl config current-contex

Kubernetes 使用JSON密钥文件的身份验证方法:未经授权:GCR登录失败

主要针对:谷歌云平台 我试图解决的总体问题是;从Google容器注册表中从私有Kubernetes中提取图像 更新刚刚添加了heptio contour,如果有人在那里遇到了这一点-因为heptio的好人已经创建了问题下面提到的脚本-谢谢 第一步是使用带有JSON密钥的服务帐户-如前所述。 但当我跑步时: cat gcr-sa-key.json | docker login -u _json_key --password-stdin https://gcr.io 我应该可以登录docker,但

Kubernetes 持久卷不是';与索赔不符

我创建了一个简单的本地存储卷。大概是这样的: apiVersion: v1 kind: PersistentVolume metadata: name: vol1 spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: local-storage local: path: /srv/

Kubernetes 删除命名空间中最早的部署

我在一个名称空间中运行了两个部署,分别名为deployment-A和deployment-B 目前,它的配置方式是,如果a正在运行,那么我的Jenkins作业将部署B,反之亦然。但当A和B都在运行时,作业失败。 现在我想对它进行一些修改,以便如果a和B都在运行,那么作业应该删除最旧的一个(基于它们的部署时间) 我知道它可以通过一些shell脚本实现,但无法理解确切的命令。以下是您的命令: kubectl delete deployment$(kubectl get deployments--so

Kubernetes 删除“;使用电子邮件登录";来自dexwebui

我一直在使用CoreOS Dex将我的K8s应用程序与LDAP集成。 我只将LDAP配置为一个连接器,而在将其重定向到Dex时,我得到一个选项,如下所示: 使用电子邮件或ldap登录,会产生误导。 因为电子邮件身份验证不起作用 有什么方法可以从Dex UI中删除电子邮件身份验证吗?再深入一点,我发现我已将enabledPasswordDB选项启用为true。我相信通过这个参数,dex会尝试寻找一些本地电子邮件地址来登录。一旦我们将其设为false,我们就可以登录了。只需稍微深入一点,我就发现我已

Kubernetes在部署后用运行的吊舱保存旧的复制集

不确定为什么会发生这种情况,但我们看到在Kubernetes群集中运行着带有活动POD的旧复制集,尽管它们所连接的部署已被长期删除(最长82天)。我们的部署将spec.replicas设置为最多2个,但是我们在这些部署中看到多达6/8个活动POD 我们目前正在运行k8s版本1.14.6。下面是一个示例部署 { "kind": "Deployment", "apiVersion": "extensions/v1beta1", "metadata": { "name": "xxx

在部署中使用Kubernetes javascript客户端创建作业

嗨,我创建了一个节点应用程序,它使用kubernetes客户端库创建一个k8s作业。然后,该作业应用程序通过对我的节点应用程序的HTTP调用进行响应。为了减少网络延迟和时间,我必须将所有东西都放在集群中。这是否可以在部署中创建作业 参考资料: 您可以为代码构建docker映像,就像您可以使用 node server.js 要触发主应用程序并将相同的映像放置在Kubernetes作业中,请将其保存在其他目录中,并使用 command 作业/cronjob的yaml模板中的选项 这将为您排序

如何在kubernetes服务定义yaml中指定不相等选择器?

我正在尝试基于某些选择器为一组pod创建一个服务。例如,下面的getpods命令为我的需求检索正确的pods- kubectl get pods --selector property1=dev,property2!=admin 下面是服务定义yaml的摘录,我试图使用与上面相同的选择器- apiVersion: v1 kind: Service metadata: name: service1 spec: type: NodePort ports: - name: por

Kubernetes grpc http 2错误

我在eks上部署了一个grpc服务,并使用入口公开该服务。我部署了一个演示https应用程序,它成功了。但是,我对grpc应用程序有一个问题。该服务正在运行,但当我记录该服务时,我收到一个错误。grpc请求甚至没有发送到服务器。日志如下所示 level=info msg=“grpc:Server.Serve无法创建ServerTransport: 连接错误:desc=\“传输:http2Server.HandleStreams 收到来自客户端的虚假问候语:\\“GET/HTTP/1.1\\r\\

理解kubernetes吊舱的Istio AuthN和authz

我对将Istio与EKS一起使用感到有点困惑。我们有两个spring boot微服务,一个是REST服务提供商,另一个是消费者。我们希望使用Istio实现Authn和authz 为此: 1.在提供者服务端:我有一个VirtualService,一个目的地规则(声明TLS模式对于传入流量应该是ISTIO_MUTUAL),一个授权策略,它基本上白名单了客户端服务帐户。我还有一个身份验证策略,如下所示: apiVersion: "authentication.istio.io/v1alpha1" ki

Kubernetes 通过istio在GCP上创建防火墙

我的配置: GKE集群v。1.15.7-gke.23 istio:1.4.3 Istio使用默认防火墙规则作为Loadbalacner创建Istio入口网关服务: 类型:入口 目标:GKE集群上的虚拟机 过滤器:0.0.0.0/0 协议/端口:tcp:15020、tcp:80、tcp:443、, tcp:15029,tcp:15030,tcp:15031,tcp:15032,tcp:15443 我的目标是更新规则中的过滤器,只允许从允许列表IP地址访问端点 可以通过istio实现吗?AFAI

在kubernetes吊舱中找不到由初始容器创建的文件和文件夹

我正在使用初始容器(k8s版本:v1.15.2)在容器启动之前初始化skywalking(6.5.0)jar文件。但是我找不到初始容器创建的文件和目录,这是我的初始容器定义: "initContainers": [ { "name": "init-agent", "image": "registry.cn-shenzhen.aliyuncs.com/dabai_app_k8s/dabai_fat/skywalking-agent:6.5.0",

Kubernetes 将https与从IHS到K8S的HCL连接组件包6.5一起使用

将http用于从IHS到Kubernetes后端的连接。这不再是最新的,因此我希望在这些后端连接以及IHS中使用https,如下所示: User <----- https -----> IHS <----- https -----> K8S Backend 用户IHS K8S后端 根据HCLs文档,我们刚刚得到 User <----- https -----> IHS <----- http -----> K8S Backend 用户IHS

Kubernetes 在Okto上的POD/部署之间共享PersistentVolumeClaims

对于Okteto Cloud,为了让不同的POD/部署访问共享的PersistentVolumeClaim,我尝试将PersistentVolumeClaim的访问模式设置为ReadWriteMany: 使用kubectl应用我的部署成功,但部署本身在Okto web UI上超时,出现错误: pod has unbound immediate PersistentVolumeClaims (repeated 55 times) 现在,将accessModes设置为ReadWriteOnce的同

Kubernetes 所有gitlab托管服务帐户是否都具有特定的角色绑定

我喜欢为每个gitlab命名空间/项目微服务提供一个来自monitoring.coreos.com的ServiceMonitor。 但在运行gitlab管道创建它时,出现了一个错误,即无法创建此ressource servicemonitors.monitoring.coreos.com "service-monitor" is forbidden: User "system:serviceaccount:ABC_NAMESPACE:ABC-dev-service-account" canno

从另一个吊舱更改kubernetes stroge类装载值

我想和库伯内特斯一起出版一本书。我成功地使用了官方软件包。但是我想使用一些旧版本的插件和一些自定义插件。在LocalWithDockerCompose文件中,我创建了一个flyaway容器,用插件填充插件目录(/opt/sonarqube/extensions/plugins)。并将该卷与sonarqube容器一起使用。结论是:Sonarqube extensions卷目录是从不同的容器(完成工作并死亡)创建(或填充)的 我想对库伯内特斯使用相同的路径,但不能这样做。我的飞走容器没有填满路径 我

Kubernetes 当出现yum-install-kebelet错误时安装k8s

此问题在K8S 1.16.4的安装过程中遇到 提示说它缺少Kubenpilies CNI 0.7.5的依赖性 但是,如果您直接使用YUM安装kubeni 0.7.5,kubelet 1.18将自动安装 完整信息 [root@k8s-node-2 yum.repos.d]# yum install -y kubelet-1.16.4-0 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base:

Kubernetes 部署失败,因为内存不足

我们有Prometheus在k8s上运行,但它不会再启动了,因为RAM需求不足(CPU也接近极限)。因为这对我来说是全新的,我不确定该采取哪种方法。我尝试使用稍微增加的RAM限制部署容器(节点有16Gi,我从145xxMi增加到15Gi)。这一地位一直悬而未决 Normal NotTriggerScaleUp 81s (x16 over 5m2s) cluster-autoscaler pod didn't trigger scale-up (it wouldn't fit if

GCP上的kubernetes群集缺少编辑权限

这是谷歌云特有的问题。 我度假回来,注意到由于以下错误,我无法再管理工作负载或群集:“缺少帐户的编辑权限” 我是唯一可以访问此帐户(所有者角色)的人,但我看到了此问题。 疑难解答建议检查系统服务帐户角色,看起来它设置正确(如果我没有编辑它,为什么它不正确): 如果设置不正确,则建议关闭/打开GCP上的Kubernetes API,但当您按下“禁用”按钮时,会出现一个可怕的提示,提示您的Kubernetes资源将被删除,因此显然我不能这样做 在尝试连接到它时,我得到了 gcloud conta

Kubernetes 当第二个pod被调度到同一节点时,准备就绪探测失败

我有一个k8s服务,它映射到带有2个副本的pod部署,并作为clusterIp服务公开。当第二个pod被安排到同一个节点时,我发现一个问题,即就绪探测(对容器端口中的api的http调用)失败,出现“无法连接错误”。这是因为端口冲突吗 部署 apiVersion:apps/v1 种类:部署 元数据: 名称:演示部署 名称空间:演示 标签: 应用程序:演示 规格: 副本:2份 战略: 类型:RollingUpdate 滚动更新: 最大涌浪:1 maxUnavailable:0 选择器: 火柴标签:

Kubernetes集群中的请求缓冲

这是一个纯粹的理论问题。给出了一个标准的Kubernetes聚类,并设置了自动缩放。如果内存超过某个targetMemUtilizationPercentage,则会启动一个新的pod,并且它将接收到所包含服务的请求流。minReplicas的数量设置为1,maxReplicas的数量设置为5 当联机的POD数量达到最大值(在我们的例子中为5个)并且来自客户端的请求仍然向节点发送时,会发生什么情况?这些请求是否被缓冲在某个位置?它们是否被丢弃?我可以采取任何措施来避免请求丢失吗?我成功地测试了这

Kubernetes 如何实现minikube的openapi接口?

根据,您可以为K8s群集ping http端点以对其进行操作,而不是使用例如kubectl。它还说在/openApi/v2上有一个openApi接口。我正在MacOS上运行minikube,想查看一下。有人知道这是否可能吗 我试过: minikube list service # Shows 'kubernetes' as a name minikube list kubernetes 。。。打开浏览器至127.0.0.1:51377。但是,当我尝试转到https://127.0.0.1:51

Kubernetes 仅允许mTLS流量时,Istio ingressgateway 503上游错误

我在prem k8s v1.19上使用的是Istio 1.8.0。我们有几个微服务正在运行,我使用的是STRICT模式进行peerauthentication。我可以验证,如果我使用PERMISSIVE模式,我没有收到任何503错误 我真的很难找到任何解决方案,因为我不想按建议使用许可模式 这是istio ingressgateway的日志 $kubectl logs -f istio-ingressgateway-75496c97df-44g6l -n istio-system [2021-

Kubernetes 使其仅为https时忽略全局IP的入口

为如下服务创建外部入口 一切都被创造了,但没有我所期望的行为 不使用全局IP,而是使用另一个IP HTTP仍处于启用状态 apiVersion:“扩展/v1beta1” 种类:“入口” 元数据: 注释: kubernetes.io/ingres.allow-http:false kubernetes.io/ingres.global-static-ip-name:“我的入口ip” 标签: app.kubernetes.io/instance:“我的服务api” app.kubernetes.