对外暴露端口
Exposing ports externally
我正在部署一个 IRC 服务器,我需要将端口 6667 暴露给外部网络。应用程序 pod 本身在内部使用端口 6667。
我目前在我的主机上使用 minikube/kubectl
这是我的 YAML 配置文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: inspircd-x
spec:
selector:
matchLabels:
app: inspircd
replicas: 2
template:
metadata:
labels:
app: inspircd
spec:
containers:
- name: inspircd-x
image: inspircd/inspircd-docker
ports:
- containerPort: 6667
我正在创建服务:
kubectl expose deployment inspircd-x --type=LoadBalancer --name
inspircd-x
并分配 IP:
minikube service inspircd-x
我知道 NodePort 范围是 30000 - 32767,所以(显然)当我尝试修改我的服务配置时它会抛出一个错误。
我想做的和这个类似docker yaml:
services:
ircd-compose:
image: inspircd/inspircd-docker
ports:
- 6667:6667
- 7000:7000
我认为在配置方面我误解了一些概念,所以我有几个问题:
expose命令和“minikube service inspircd-x”会分配一个可以从外部访问的外部IP吗? (我可以使用 Docker,将我的路由器指向我的主机)。当然,下面出现的ip不在我本地网络的IP范围内(192.168.0.x)
NAMESPACE
NAME
TARGET PORT
URL
default
inspircd-x
6667
http://192.168.64.2:30047
这是在外部公开我的 pod 的正确方法吗?
谢谢!
相当于您的 docker-compose 文件将使用节点上的主机端口。当您使用 minikube 时,这只是一个节点。
spec:
containers:
- name: inspircd-x
image: inspircd/inspircd-docker
ports:
- containerPort: 6667
hostPort: 6667
kubernetes 服务用于集群内部的连接,它可以使用额外的服务向外部公开,通常作为基础设施的一部分提供,例如 LoadBalancer
你的下一个问题,这是否是正确的方法 - 视情况而定。由于 hostPort 仅可用于单个 pod,因此您将无法进行滚动部署。
我正在部署一个 IRC 服务器,我需要将端口 6667 暴露给外部网络。应用程序 pod 本身在内部使用端口 6667。
我目前在我的主机上使用 minikube/kubectl
这是我的 YAML 配置文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: inspircd-x
spec:
selector:
matchLabels:
app: inspircd
replicas: 2
template:
metadata:
labels:
app: inspircd
spec:
containers:
- name: inspircd-x
image: inspircd/inspircd-docker
ports:
- containerPort: 6667
我正在创建服务:
kubectl expose deployment inspircd-x --type=LoadBalancer --name inspircd-x
并分配 IP:
minikube service inspircd-x
我知道 NodePort 范围是 30000 - 32767,所以(显然)当我尝试修改我的服务配置时它会抛出一个错误。
我想做的和这个类似docker yaml:
services:
ircd-compose:
image: inspircd/inspircd-docker
ports:
- 6667:6667
- 7000:7000
我认为在配置方面我误解了一些概念,所以我有几个问题:
expose命令和“minikube service inspircd-x”会分配一个可以从外部访问的外部IP吗? (我可以使用 Docker,将我的路由器指向我的主机)。当然,下面出现的ip不在我本地网络的IP范围内(192.168.0.x)
NAMESPACE NAME TARGET PORT URL default inspircd-x 6667 http://192.168.64.2:30047 这是在外部公开我的 pod 的正确方法吗?
谢谢!
相当于您的 docker-compose 文件将使用节点上的主机端口。当您使用 minikube 时,这只是一个节点。
spec:
containers:
- name: inspircd-x
image: inspircd/inspircd-docker
ports:
- containerPort: 6667
hostPort: 6667
kubernetes 服务用于集群内部的连接,它可以使用额外的服务向外部公开,通常作为基础设施的一部分提供,例如 LoadBalancer
你的下一个问题,这是否是正确的方法 - 视情况而定。由于 hostPort 仅可用于单个 pod,因此您将无法进行滚动部署。