草庐IT

【云原生】k8s之pod基础(下)

一、pod的镜像拉取策略1.镜像拉取说明当你在创建容器时会针对指定的镜像来进行容器的创建,所以pod的创建是以镜像为基础。当你在拉取镜向不指定仓库的主机名,Kubernetes认为你在使用Docker公共仓库。在镜像名称之后,你可以添加一个标签(Tag)(与使用docker或podman等命令时的方式相同)。使用标签能让你辨识同一镜像序列中的不同版本。镜像标签可以包含小写字母、大写字母、数字、下划线()、句点(.)和连字符(-)。关于在镜像标签中何处可以使用分隔字符(、-和.)还有一些额外的规则。如果你不指定标签,Kubernetes认为你想使用标签latest镜像拉取的策略首先在资源式声明中

kubernetes中的pod沟通

我以前创建了一个带有三个容器的吊舱-普罗米修斯,BlackBox-Exporter和python-access-api。这BlackBox-Exporter在端口9115上运行,并刮除由python-access-api在该容器中发出警报普罗米修斯对于SSL的目标证书。现在我想移动BlackBox-出口商到另一个豆荚。我试图通过服务但是我没有建立普罗米修斯和BlackBox-Exporter现在,由于它们处于不同的豆荚中。因此,我无法对SSL到期证书进行调查,因此无法看到警报普罗米修斯。以下是我使用过的YAML文件,任何人都可以指出解决此问题的方法。请注意,我的配置对Prometheus看起来

【博客628】k8s pod访问集群外域名原理以及主机开启了systemd-resolved的不同情况

k8spod访问集群外域名原理以及使用了systemd-resolved的不同情况1、不同情况下的linux主机访问外部域名原理没有使用systemd-resolved的linux主机上访问外部域名一般是按照以下步骤来的:从dns缓存里查找域名与ip的映射关系从/etc/hosts里查找域名与ip的映射关系从/etc/resolv.conf里查找dnsserver,并发起解析请求/etc/resolv.conf的内容一般如下:nameserver8.8.8.8使用systemd-resolved的linux主机上访问外部域名一般是按照以下步骤来的:从dns缓存里查找域名与ip的映射关系从/et

k8s查看当前命名空间下所有运行的 pod 对应的镜像

1,查看镜像kubectl-nxxxgetpods|grepRunning|awk'{print$1}'|xargs-r-I'{}'kubectl-nxxxgetpods{}-o=jsonpath='{.status.containerStatuses[0].image}{"\n"}'|sort2,去重查看kubectl-nnamespacegetpods-ojsonpath='{.items[*].spec.containers[*].image}'|tr'''\n'|sort|uniq3, 同时显示pod名称和镜像kubectlgetpods-nnamespace-o=jsonpath='

一个k8s pod报错端口被占用的问题

文章目录问题现象解决在陌生环境中如何找到此类pod?问题现象一个node_exporter的daemonset中出现两个pod无法正常启动。信息如下。这里node_exporterpod中的一个container需要使用hostNetwork的9100端口。Events:TypeReasonAgeFromMessage-------------------------WarningFailedScheduling43s(x31over34m)default-scheduler0/10nodesareavailable:1node(s)didn'thavefreeportsforthereque

k8s-pod

k8s-pod学习0.pod概念1)Pod:Pod是一个容器组,是k8s中最小的可部署的单元。一个Pod其中包含了最少一个应用程序容器,存储资源,一个唯一的网络IP地址,以及一些确定容器该如何运行的配置。一般一个Pod里面运行一个容器即可,k8s通过Pod来管理容器。如果一个Pod里面要运行几个容器,那么要注意容器与容器之间一定是紧耦合的。1.pod配置文件1)先创建一个yaml文件用来写配置,这里用配置nginx来举例。#Step1先创建一个nginx-demo.yaml文件touchnginx-demo.yaml#Step2向nginx-demo.yamal文件中写入配置apiVersio

2021-03-29 cocoapods版本降级&使用bundle管理多版本cocoapods&一键删除本地所有版本的pod

一、安装指定版本cocoapods安装指定版本sudogeminstall-n/usr/local/bincocoapods--version1.9.3gemsources--removeURL_HERE,gemsources-lgemsources--removehttps://rubygems.org/gemsources-ahttps://gems.ruby-china.com/sudogeminstallcocoapods删除其他不要的版本有更加简单的方法:gemlist--local|grepcocoapods|awk'{print$1}'|xargssudogemuninstall

K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路

K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路Node节点资源不足可能会产生的故障故障一:Pod数量太多超出物理节点的限制每一台Node节点中默认限制最多运行110个Pod资源,当一个应用程序有成百上千的Pod资源时,如果不扩容Node节点或者修改最大Pod数量限制,那么就会导致部分Pod资源无法正常运行,因为节点已经没有资源可以被调度了。解决思路就是扩容Node节点数量或者修改Pod的数量限制故障二:Pod配置的资源限额超出物理节点的最大使用率由于Node节点资源有限,当Pod设置的资源配额超出了Node节点所承受的极限,那么Pod将无法部署和运行,会报错没有合适的Node

解决kubernetes中微服务pod之间调用失败报错connection refused的问题

现象: 从这里可以看到是当前服务在调用productservice服务是出现了连接拒绝connectionrefused走读一下原始代码:可以看到请求是由FeignClient代理发出的 ,但问题在于为什么Feign请求的时候会产生connectionrefused错误?上面的日志又没有给出详细信息。我们需要看到feign请求网址的完整信息。解决办法:新建一个配置类importfeign.Logger;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Co

kubernetes教程 --Pod详解

Pod详解每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:用户程序所在的容器,数量可多可少Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个:可以以它为依据,评估整个Pod的健康状态可以在根容器上设置Ip地址,其它容器都此Ip(PodIP),以实现Pod内部的网路通信这里是Pod内部的通讯,Pod的之间的通讯采用虚拟二层网络技术来实现,我们当前环境用的是Flannelpod定义apiVersion:v1#必选,版本号,例如v1kind:Pod #必选,资源类型,例如Podmetadata: #必选,元数据name:string#必选,Pod名称namespace:s