Kubernetes:只有一个服务端点在工作
Kubernetes: Only one service endpoint working
我已经将我的 Django/React 应用程序部署到 K8s 中并将这两个部署公开为服务 (ClusterIP)。
每当我尝试通过 ClusterIP:8000 调用 API 服务时,它有时会拒绝连接。因此,我检查了它的端点,并且只有三个现有端点中的一个 returns 符合我的预期。我知道在调用 ClusterIP 时,它会重定向到这三个端点之一。
有什么方法可以'debug' 传入服务请求吗?我可以修改现有端点的数量吗(这样我就可以将其限制为唯一的工作端点)?有没有其他方法可以查看服务日志以找出为什么只有一个端点在工作?
ClusterIP:8000 似乎不适合使用。
您可以将其替换为 http://$(serviceName).$(namespace):8000/ 以正确使用服务。
我能够修复它:
我部署了一个 three-tier-application (Django/React/DB) 并为每个部署使用相同的选择器,如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-xxx-deployment
labels:
app: myapp
spec:
replicas: 1
selector:
matchLabels:
app: myapp
因此,当使用 "kubectl expose deployment/..."
公开它时,它会创建与在部署中找到的相等选择器一样多的端点。由于我有三个部署 (DB/React/Djagno),因此创建了三个端点。
像这样更改部署 .yaml 修复了我的错误,并且只创建了一个端点:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: myapp-web
spec:
replicas: 1
selector:
matchLabels:
app: mapp-web
我已经将我的 Django/React 应用程序部署到 K8s 中并将这两个部署公开为服务 (ClusterIP)。 每当我尝试通过 ClusterIP:8000 调用 API 服务时,它有时会拒绝连接。因此,我检查了它的端点,并且只有三个现有端点中的一个 returns 符合我的预期。我知道在调用 ClusterIP 时,它会重定向到这三个端点之一。
有什么方法可以'debug' 传入服务请求吗?我可以修改现有端点的数量吗(这样我就可以将其限制为唯一的工作端点)?有没有其他方法可以查看服务日志以找出为什么只有一个端点在工作?
ClusterIP:8000 似乎不适合使用。 您可以将其替换为 http://$(serviceName).$(namespace):8000/ 以正确使用服务。
我能够修复它:
我部署了一个 three-tier-application (Django/React/DB) 并为每个部署使用相同的选择器,如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-xxx-deployment
labels:
app: myapp
spec:
replicas: 1
selector:
matchLabels:
app: myapp
因此,当使用 "kubectl expose deployment/..."
公开它时,它会创建与在部署中找到的相等选择器一样多的端点。由于我有三个部署 (DB/React/Djagno),因此创建了三个端点。
像这样更改部署 .yaml 修复了我的错误,并且只创建了一个端点:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: myapp-web
spec:
replicas: 1
selector:
matchLabels:
app: mapp-web