【发布时间】:2021-10-17 21:50:13
【问题描述】:
我在 cloud- using this tutorial 中创建了一个 Kubernetes 集群,并从 Docker 私有注册表中部署了一个名为 chatapp 的后端应用程序[到集群]。由于没有选项将服务类型包括为LoadBalancer,我不得不恢复为NodePort 类型。
这是chatapp-deployment.yml文件供参考:
apiVersion: v1
kind: Service
metadata:
name: chatapp
spec:
selector:
app: chatapp
ports:
- protocol: "TCP"
port: 6443
targetPort: 3000
type: NodePort
externalIPs:
- A.B.C.D
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: chatapp
labels:
app: chatapp
spec:
replicas: 2
selector:
matchLabels:
app: chatapp
template:
metadata:
labels:
app: chatapp
spec:
imagePullSecrets:
- name: regsecret
containers:
- name: chatapp
image: sebastian/chatapp
imagePullPolicy: Always
command: ["/bin/sh"]
args: ["-c", "while true; do echo hello; sleep 10;done"]
ports:
- containerPort: 3000
注意:出于安全原因,我删除了外部 IP。
我不得不手动分配外部 IP,因为我无法将 LoadBalancer 设置为服务类型。每当我尝试访问 http://A.B.C.D:6443 时,都会得到以下信息:
Client sent an HTTP request to an HTTPS server.
我经历了这个link,但无法解决我的问题。我使用的外部IP来自master-o。
在尝试使用 https://A.B.C.D:6443 访问它时,我收到以下 403 消息:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
"reason": "Forbidden",
"details": {
},
"code": 403
如何授权访问我的集群?任何反馈和建议将不胜感激。
【问题讨论】:
-
您在 kubernetes API 中提到的 a.b.c.d:6443 与集群上的服务完全分离。这就是存在
NodePort类型服务的原因,将外部端口映射到集群内端口。这个问题是网络配置错误,因此与编程站点无关
标签: kubernetes https