我正在尝试在windows 10 home (build 19042)上安装minikube 1.16的docker驱动程序。以前不支持docker驱动上的入口,但现在minikube 1.16支持:https://github.com/kubernetes/minikube/pull/9761
我一直在尝试自己的东西,但我在连接到127.0.0.1
或kubernetes.docker.internal
的入口时得到了ERR_CONNECTION_REFUSED
步骤:
- minikube开始
- minikube插件启用入口
- 创建部署
- 创建ClusterIP
- 入口配置
下面是我的配置:
#cluster ip service
apiVersion: v1
kind: Service
metadata:
name: client-cluster-ip-service
spec:
type: ClusterIP
selector:
component: web
ports:
- port: 3000
targetPort: 3000
# not posting deployment code because it's not relevant, but there is a deployment with selector 'component:web' and it's exposing port 3000.
#ingress service
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: 'true'
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: kubernetes.docker.internal
http:
paths:
- path: /?(.*)
pathType: Prefix
backend:
service:
name: client-cluster-ip-service
port:
number: 3000
我在hosts文件中有dns重定向。
我也试过"minikube隧道";在另一个终端,但也没有运气。
谢谢!
rules
字段下的入口对象定义错误:
rules:
- host: kubernetes.docker.internal
- http:
paths:
确切的问题是-
在http
前面,这使得host
和http
单独的数组。
看看你的转换器yaml在json中的样子:
{
"spec": {
"rules": [
{
"host": "kubernetes.docker.internal"
},
{
"http": {
"paths": [
{
"path": "/?(.*)",
"pathType": "Prefix",
"backend": {
---
这就是你的入口定义中注释的样子。
spec:
rules:
- host: kubernetes.docker.internal
http:
paths:
- path: /?(.*)
pathType: Prefix
现在注意这个yaml转换成json的样子:
{
"spec": {
"rules": [
{
"host": "kubernetes.docker.internal",
"http": {
"paths": [
{
"path": "/?(.*)",
"pathType": "Prefix",
"backend": {
---
使用yaml-viewer
可以更容易地看到这一点