macos - kubernete 服务被阻塞/在 mac 中使用 minikube 加载
问题描述
我一直在与队友检查相同的配置,他可以使用他的 Macintosh/笔记本电脑通过浏览器访问该服务。
kubectl get services --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7d23h
default posts-depl LoadBalancer 10.100.86.132 <pending> 4000:31578/TCP 102m
default posts-srv NodePort 10.101.115.21 <none> 4000:31237/TCP 26h
这是我的服务文件:
apiVersion: v1
kind: Service
metadata:
name: posts-srv
spec:
type: NodePort
selector:
app: posts
ports:
- name: posts
protocol: TCP
port: 4000
targetPort: 4000
这是部署文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: posts-depl
spec:
replicas: 1
selector:
matchLabels:
app: posts
template:
metadata:
labels:
app: posts
spec:
containers:
- name: posts
image: username/posts:latest
ports:
- containerPort: 4000
name: app
荚:
kubectl get pods
NAME READY STATUS RESTARTS AGE
posts-depl-5489b46f-2sprs 1/1 Running 0 25h
服务信息:
kubectl describe service posts
Name: posts-depl
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=posts
Type: LoadBalancer
IP: 10.100.86.132
Port: <unset> 4000/TCP
TargetPort: 4000/TCP
NodePort: <unset> 31578/TCP
Endpoints: 172.17.0.3:4000
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
Name: posts-srv
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"posts-srv","namespace":"default"},"spec":{"ports":[{"name":"posts...
Selector: app=posts
Type: NodePort
IP: 10.101.115.21
Port: posts 4000/TCP
TargetPort: 4000/TCP
NodePort: posts 31237/TCP
Endpoints: 172.17.0.3:4000
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
我知道,我可以访问节点/容器,
kubectl port-forward posts-depl-5489b46f-2sprs 50000:4000
并且我可以从 nodejs 服务器接收正确的响应,但我想通过服务访问。
另外,我一直在尝试通过负载均衡器访问:
kubectl expose deployment posts-depl --type=LoadBalancer --port=4000
我无法使用负载平衡器和节点端口访问 nodejs 响应不知何故我的 Macintosh 阻止了来自浏览器的请求:
网址:
minikube service posts-srv --url
Starting tunnel for service posts-srv.
|-----------|-----------|-------------|------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|-----------|-------------|------------------------|
| default | posts-srv | | http://127.0.0.1:54224 |
|-----------|-----------|-------------|------------------------|
http://127.0.0.1:54224
❗ Because you are using a Docker driver on darwin, the terminal needs to be open to run it.
正如我之前所说,我的一个队友可以用他的 mac 很好地访问 nodejs 响应。不知何故,我的 Macintosh 阻止了 kubernet 集群内部的信息。
谢谢!
解决方案
推荐阅读
- javascript - 防止函数给出对象承诺
- sql - SQL-在访问第一名后查找未访问第二名的访问者
- python - 如何将mysql表的变量放入列表中?
- r - 在R中按索引过滤数据框列表中的特定列
- java - 如何为单元测试覆盖 JPA @PrePersist 行为
- android - 如何在 Android 上使用 Flutter 成功完成应用内购买?
- ruby-on-rails - Ruby - 如何有效地从对象中获取和分组某些信息?
- arguments - 戈多:论点太少
- azure - 如何创建 Azure Web 应用程序来验证用户并获取其访问令牌?
- qt - OpenGL ES Framebuffer 大小格式无效