Ha *_* Ja 3 google-cloud-platform kubernetes
我正在关注本教程:https : //cloud.google.com/container-engine/docs/tutorials/http-balancer ,但在 Minikube 中运行它,并yml为每个步骤提供文件:
第一步:部署nginx服务器
生产.yml:
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: pwa-app-production
labels:
app: MyApp
spec:
replicas: 1
template:
metadata:
name: app
labels:
app: MyApp
env: production
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- name: nginx
containerPort: 80
Run Code Online (Sandbox Code Playgroud)
然后:
$ kubectl apply -f production.yml
Run Code Online (Sandbox Code Playgroud)
第 2 步:在内部将您的 nginx 部署作为服务公开
服务.yml:
$ kubectl apply -f production.yml
Run Code Online (Sandbox Code Playgroud)
然后:
$ kubectl apply -f service.yml
Run Code Online (Sandbox Code Playgroud)
验证服务已创建并已分配节点端口:
$ kubectl get service pwa-frontend
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
pwa-frontend 10.0.0.28 <nodes> 80:30781/TCP 26m
Run Code Online (Sandbox Code Playgroud)
第 3 步:创建 Ingress 资源
入口.yml:
kind: Service
apiVersion: v1
metadata:
name: pwa-frontend
spec:
type: NodePort
selector:
app: MyApp
ports:
- name: nginx
port: 80
protocol: TCP
Run Code Online (Sandbox Code Playgroud)
然后:
$ kubectl create -f ingress.yml
Run Code Online (Sandbox Code Playgroud)
第 4 步:访问您的应用程序
通过运行以下命令找出为您的应用程序提供服务的负载均衡器的外部 IP 地址:
$ kubectl describe ing pwa-ingress
Name: pwa-ingress
Namespace: default
Address: 192.168.99.100
Default backend: pwa-frontend:80 (172.17.0.2:80)
Rules:
Host Path Backends
---- ---- --------
* * pwa-frontend:80 (172.17.0.2:80)
Annotations:
rewrite-target: /
Run Code Online (Sandbox Code Playgroud)
每件事似乎都运行良好,所有信息输出似乎都与教程相对应。但现在:
$ curl 192.168.99.100
default backend - 404
Run Code Online (Sandbox Code Playgroud)
我假设您通过minikube addons enable ingress. 您遵循的教程专门针对 Google Container Engine,在这些集群中部署了不同的入口控制器,它将创建 Google Cloud 负载均衡器,并且还能够公开普通 TCP 服务。minikube 中的 nginx 入口控制器只能处理这样的 HTTP 入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: pwa-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: pwa-frontend
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
kubectl replace ingress.yml修改文件后使用并再次尝试您的请求。
| 归档时间: |
|
| 查看次数: |
2850 次 |
| 最近记录: |