我已经使用下面的命令创建了 Deployment
kubectl create deployment nginx --image=nginx --port=80 --replicas=3
我正在寻找有关如何创建服务以通过计划节点上的 NodePort 公开单个 Pod 的答案。
此命令将不起作用:因为这会将请求发送到其中一个 pod
kubectl expose deploy nginx --name nginx-service --target-port=80 --type=NodePort
有什么东西可以自动为每个 pod 创建 3 个独立的服务吗?
我试过了,但这不是预期的结果
kubectl expose deploy nginx --name nginx-service --target-port=80 --type=NodePort
我不清楚需要什么,因为 NodePort 打开您在集群的所有节点上定义的端口,所以如果您有 3 个副本(3 个 Pod),您可以通过NODE-IP:NODE-PORT(显然是Pod所在节点的NODE-IP)。
如果将类型字段设置为 NodePort,Kubernetes 控制平面会从 --service-node-port-range 标志指定的范围内分配一个端口(默认值:30000-32767)。每个节点将该端口(每个节点上的相同端口号)代理到您的服务中。
https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
https://kubernetes.io/docs/tasks/access-application-cluster/service-access-application-cluster/
如果你想访问 NodePort 服务,如果你使用 minikube,稍微改变一下: https://minikube.sigs.k8s.io/docs/handbook/accessing/#getting-the-nodeport-using-the-service-command
• LoadBalancer 或 Nodeport 服务未从本地主机连接到 minikube 内的 pod
• 如何调试作业中意外终止的 Kubernetes pod?
• 部署在 Nginx 中的 Kubernetes Angular 以使用 ClusterIP 服务访问在同一容器中运行的应用程序端点
• Kubernetes:如何确保在每个工作节点上安排一个 pod?
• 在 docker 中运行 kafka,它不是 kubernetes 集群的一部分,但可以从该集群访问它
• 使用kubernetes-dashboard时无法访问https://<master-ip>:<nodePort>
• 正在执行 readiness.httpGet: Readiness probe failed: No such host
• Pod AntiAffinity 在我的 Kubernetes 集群中不起作用
• Azure Kubernetes 服务 - 查找因 OOM 而被杀死的 Pod 的日志
• 在不使用向下 API 或环境变量方法的情况下从容器获取 Pod 自身的详细信息
• kubectl 获取在每个节点上运行的 pod 以及节点的状态
• 有没有办法在部署期间绕过节点的 maxpodrange 检查?
• 如何将 Backstage 连接到 Kubernetes 集群以发现 pod