集装箱港口
与Kubernetes集装箱中的targetports
有何不同?它们是否可以互换使用,如果是,为什么?
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres-deployment
labels:
app: demo-voting-app
spec:
replicas: 1
selector:
matchLabels:
name: postgres-pod
app: demo-voting-app
template:
metadata:
name: postgres-pod
labels:
name: postgres-pod
app: demo-voting-app
spec:
containers:
- name: postgres
image: postgres:9.4
ports:
- containerPort: 5432
据我所知,术语端口
通常指的是服务
(Kubernetes)上的端口
。如果我不正确就纠正我。
简而言之:targetport
和containerport
基本上引用相同的端口(因此,如果使用两者,它们应该具有相同的值),但是它们在两个不同的上下文中使用,并且具有完全不同的目的。
它们不能互换使用,因为它们都是两个不同的kubernetes资源/对象规范的一部分:service
和pod
。虽然ContainerPort
的用途可以被视为纯粹的信息性,但TargetPort
是服务
所必需的,该服务公开一组Pods
。
必须了解,通过在pod
/deployment
规范中声明containerport
的特定值,您不能让pod
公开这个特定的端口。例如,如果您在containerport
字段中声明您的nginxpod
公开端口8080
而不是默认的80
,您仍然需要在容器中配置您的nginx服务器来侦听这个端口。
在pod
规范中声明containerport
是可选的。即使没有它,您的服务
也将根据它在targetport
中声明的信息知道将请求定向到哪里。
最好记住,在service
定义中不需要声明targetport
。如果省略它,则默认为您为端口
声明的值(这是服务
本身的端口)。
我试图设置Kubernetes入口,将外部http流量路由到前端pod(路径/)和后端pod(路径/rest/*),但我总是得到400错误,而不是主nginx索引。html。 所以我在第https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer页尝试了谷歌库伯内特斯的例子,但我总是得到400个错误。有什么想法吗?
我假设没有愚蠢的问题,所以这里有一个我找不到直接答案的问题。 现在的情况 我目前有一个运行1.15的Kubernetes集群。AKS上的x,通过Terraform部署和管理。AKS最近宣布Azure将在AKS上停用Kubernetes的1.15版本,我需要将集群升级到1.16或更高版本。现在,据我所知,直接在Azure中升级集群不会对集群的内容产生任何影响,即节点、豆荚、秘密和当前在那里的所有其他
我正在尝试运行集成minikube与Jenkins。我得到以下异常: 配置如下Kubernetes url所示:192.168.99.101:8443 Kubernetes 1 希望你的协助。
我怎样才能使用入口呢?我尝试使用NodePort和--Target etPort=1001,我在servicePort中添加了80在。 kubectl公开部署测试--Target-port=1001--type=NodePort 我得到了错误 找不到后端-404 我使用的是正确的方法还是需要遵循其他方法?
是否可以在库伯内特斯中配置入口控制器,仅当传入请求的标头具有特定值时才将HTTP请求路由到服务? 实例 带有以下标头的HTTP请求 应该转发给服务1 带有以下标头的HTTP请求 应该被阻止 如果可能的话,你能详细一点或指向一些文档,因为我找不到这种用例的文档吗
我的公司有一个伪造的CA证书。实例com和一张伪造地图的唱片。实例com连接到我们的负载平衡器的IP 负载平衡器正在将流量转发到我们的Kubernetes群集。 在集群中,我部署了nginx ingress helm图表,在30200处公开了https节点端口 我根据上述证书创建了一个名为test secret的k8s TLS机密。 我部署了一个带有服务“test”的应用程序,并安装了以下入口: