postgresql - 为什么我的 Kubernetes 服务在不同的子网上运行?
问题描述
我有一个使用服务名称的 Spring Boot 和 PostgreSQL 通信问题。
我创建了一个使用 Calico 进行联网的集群,如下所示:
sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=178.12.1.10
并使用上述命令产生的输出加入工作节点。
当我部署 pod 和服务时,它们都在不同的子网上运行。我错过了什么吗?
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
backend-service ClusterIP 10.110.149.43 <none> 8091/TCP 12s
postgres ClusterIP 10.108.1.52 <none> 5432/TCP 14m
未生成服务端点。
kubectl get endpoints
NAME ENDPOINTS AGE
backend-service 20m
postgres <none> 21m
kubectl get pods --all-namespaces
default backend-service-6dbd64ff4d-gqkq8 0/1 CrashLoopBackOff 12 57m
default postgres-7564bcc778-578fx 1/1 Running 0 57m
kube-system calico-etcd-b7wqf 1/1 Running 1 2d3h
kube-system calico-kube-controllers-74887d7bdf-wxhkd 1/1 Running 1 2d3h
kube-system calico-node-689b5 0/1 Running 0 47h
kube-system calico-node-smkq5 0/1 Running 1 47h
kube-system coredns-86c58d9df4-7ncdk 1/1 Running 1 2d3h
kube-system coredns-86c58d9df4-g4jcp 1/1 Running 1 2d3h
kube-system etcd-kmaster 1/1 Running 1 2d3h
kube-system kube-apiserver-kmaster 1/1 Running 1 2d3h
kube-system kube-controller-manager-kmaster 1/1 Running 3 2d3h
kube-system kube-proxy-njx5c 1/1 Running 1 2d3h
kube-system kube-proxy-pkxx5 1/1 Running 1 2d3h
kube-system kube-scheduler-kmaster 1/1 Running 3 2d3h
kube-system kubernetes-dashboard-57df4db6b-zcvcc 1/1 Running 1 2d3h
解决方案
您需要检查 API 服务器的 flag 指定的 service-cluster-ip-range CIDR。service clusterIP 是从 service-cluster-ip-range 分配的。
您已使用 --pod-network-cidr=192.168.0.0/16 初始化集群
请注意,pod-network-cidr 范围用于将 ip 地址分配给 pod。它与服务集群IP不同
您应该检查 api 服务器启动参数中定义的 service-cluster-ip-range
推荐阅读
- arrays - Serial.println 在应该只打印一个字符时打印整个字母
- php - 动态表单、PHP 和 MYSQL
- git - 如何解决 MacOS 上 expo init 的 git 权限被拒绝问题?
- node.js - 如何在 node js 中使用服务层
- html - 错位在同一行里面
- laravel - Laravel 上传的文件无法通过浏览器访问
- jquery - jQuery 控件未传递给控制器
- javascript - 在使用基本 href 分配进行 ng 构建后无法本地主机
- mysql - 如何在mysql中的表中添加额外的行插入表选择?
- c# - C# MS Chart 获取系列颜色