Vagrant 上的 Kubernetes 入口控制器
Kubernetes Ingress Controller on Vagrant
运行在 Kubernetes CoreOS Vagrant Multi-Machine 上设置入口控制器有什么特别之处吗?我按照这个例子但是当我 运行 kubectl -f
我没有得到地址。
示例:
http://kubernetes.io/v1.1/docs/user-guide/ingress.html#single-service-ingress
设置:
https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant.html
我研究了 kubernetes 中的网络。一切看起来都应该 运行 无需进一步配置。
我的目标是在构建生产平台之前创建一个本地测试环境。我在想他们是如何设置他们的 virtualbox 网络的。我正要深入研究 CoreOS 云配置,但我想我会先问一下。
更新
是的,我正在 运行安装入口控制器。
https://github.com/kubernetes/contrib/blob/master/Ingress/controllers/nginx-alpha/rc.yaml
它运行没有报错。就在我 运行 kubectl -f
我没有得到地址的时候。我在想有两件事:
- 我必须在网络中为 CoreOS-Kubernetes 流浪多节点做一些额外的事情。
- 运行 是对的,但我将本地主机指向了错误的 IP。我使用的是 172.17.4.x ip,我也有 10.0.0.x 。我可以使用 NodePort 通过 172.17.4.x 访问服务,但我可以访问我的 Ingress.
代码如下:
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx-ingress
labels:
app: nginx-ingress
spec:
replicas: 1
selector:
app: nginx-ingress
template:
metadata:
labels:
app: nginx-ingress
spec:
containers:
- image: gcr.io/google_containers/nginx-ingress:0.1
imagePullPolicy: Always
name: nginx
ports:
- containerPort: 80
hostPort: 80
更新 2
命令输出:
kubectl get pods
NAME READY STATUS RESTARTS AGE
echoheaders-kkja7 1/1 Running 0 24m
nginx-ingress-2wwnk 1/1 Running 0 25m
kubectl logs nginx-ingress-2wwnk --previous
Pod "nginx-ingress-2wwnk" in namespace "default": previous terminated container "nginx" not found
kubectl exec nginx-ingress-2wwnk -- cat /etc/nginx/nginx.conf
events {
worker_connections 1024;
}
http {
}%
我正在 运行在 NodePort 上安装 echoheaders 服务。当我在我的浏览器上输入节点 IP 和端口时,我得到了它。
我也重新启动了 virtualbox 中的所有节点。
在 kubernetes irc 和 slack 的大力帮助下,我不久前解决了这个问题。如果我没记错的话,我让入口服务监听一个已经被使用的端口,我想是为了 vagrant。这些命令确实有帮助:
kubectl get pod <nginx-ingress pod> -o json
kubectl exec <nginx-ingress pod> -- cat /etc/nginx/nginx.conf
kubectl get pods -o wide
kubectl logs <nginx-ingress pod> --previous
运行在 Kubernetes CoreOS Vagrant Multi-Machine 上设置入口控制器有什么特别之处吗?我按照这个例子但是当我 运行 kubectl -f
我没有得到地址。
示例:
http://kubernetes.io/v1.1/docs/user-guide/ingress.html#single-service-ingress
设置:
https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant.html
我研究了 kubernetes 中的网络。一切看起来都应该 运行 无需进一步配置。
我的目标是在构建生产平台之前创建一个本地测试环境。我在想他们是如何设置他们的 virtualbox 网络的。我正要深入研究 CoreOS 云配置,但我想我会先问一下。
更新
是的,我正在 运行安装入口控制器。
https://github.com/kubernetes/contrib/blob/master/Ingress/controllers/nginx-alpha/rc.yaml
它运行没有报错。就在我 运行 kubectl -f
我没有得到地址的时候。我在想有两件事:
- 我必须在网络中为 CoreOS-Kubernetes 流浪多节点做一些额外的事情。
- 运行 是对的,但我将本地主机指向了错误的 IP。我使用的是 172.17.4.x ip,我也有 10.0.0.x 。我可以使用 NodePort 通过 172.17.4.x 访问服务,但我可以访问我的 Ingress.
代码如下:
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx-ingress
labels:
app: nginx-ingress
spec:
replicas: 1
selector:
app: nginx-ingress
template:
metadata:
labels:
app: nginx-ingress
spec:
containers:
- image: gcr.io/google_containers/nginx-ingress:0.1
imagePullPolicy: Always
name: nginx
ports:
- containerPort: 80
hostPort: 80
更新 2 命令输出:
kubectl get pods
NAME READY STATUS RESTARTS AGE
echoheaders-kkja7 1/1 Running 0 24m
nginx-ingress-2wwnk 1/1 Running 0 25m
kubectl logs nginx-ingress-2wwnk --previous
Pod "nginx-ingress-2wwnk" in namespace "default": previous terminated container "nginx" not found
kubectl exec nginx-ingress-2wwnk -- cat /etc/nginx/nginx.conf
events {
worker_connections 1024;
}
http {
}%
我正在 运行在 NodePort 上安装 echoheaders 服务。当我在我的浏览器上输入节点 IP 和端口时,我得到了它。
我也重新启动了 virtualbox 中的所有节点。
在 kubernetes irc 和 slack 的大力帮助下,我不久前解决了这个问题。如果我没记错的话,我让入口服务监听一个已经被使用的端口,我想是为了 vagrant。这些命令确实有帮助:
kubectl get pod <nginx-ingress pod> -o json
kubectl exec <nginx-ingress pod> -- cat /etc/nginx/nginx.conf
kubectl get pods -o wide
kubectl logs <nginx-ingress pod> --previous