gpt4 book ai didi

docker - 如何使用 NodePort?

转载 作者:行者123 更新时间:2023-12-02 11:36:20 25 4
gpt4 key购买 nike

我正在尝试使用 NodePortkind但不知何故它不想工作。

我已经成功部署了以下集群:

apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 80
hostPort: 30000
listenAddress: "0.0.0.0" # Optional, defaults to "0.0.0.0"
protocol: tcp # Optional, defaults to tcp
- role: worker

然后是一个非常简单的部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hostname-deployment
labels:
app: hostname
spec:
replicas: 2
selector:
matchLabels:
app: hostname
template:
metadata:
labels:
app: hostname
spec:
containers:
- name: hostname
image: hostname:0.1
ports:
- containerPort: 80

和一项服务:
apiVersion: v1
kind: Service
metadata:
name: hostname-service
spec:
type: NodePort
selector:
app: hostname
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30000

我可以通过例如连接到服务
(in one terminal)
k port-forward service/hostname-service 8080:80
Forwarding from 127.0.0.1:8080 -> 80

(another one)
curl localhost:8080
hostname: hostname-deployment-75c9fd6584-ddc59 at Wed, 17 Jun 2020 15:38:33 UTC

但是我无法通过暴露的 NodePort 连接到服务
curl -v localhost:30000
* Rebuilt URL to: localhost:30000/
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 30000 (#0)
> GET / HTTP/1.1
> Host: localhost:30000
> User-Agent: curl/7.58.0
> Accept: */*
>
* Recv failure: Connection reset by peer
* stopped the pause stream!
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
kubectl get all输出:
NAME                                       READY   STATUS    RESTARTS   AGE
pod/hostname-deployment-75c9fd6584-ddc59 1/1 Running 0 34m
pod/hostname-deployment-75c9fd6584-tg8db 1/1 Running 0 34m

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/hostname-service NodePort 10.107.104.231 <none> 80:30000/TCP 34m
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 35m

NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/hostname-deployment 2/2 2 2 34m

NAME DESIRED CURRENT READY AGE
replicaset.apps/hostname-deployment-75c9fd6584 2 2 2 34m

最佳答案

Kind集群配置需要如下

apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30000
hostPort: 30000
listenAddress: "0.0.0.0" # Optional, defaults to "0.0.0.0"
protocol: tcp # Optional, defaults to tcp
- role: worker
然后这个文件作为 kind create cluster --config=config.yaml 传递给你的创建命令。 ( according to docs )。

关于docker - 如何使用 NodePort?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62432961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com