安裝ingress-nginx
參照這個網(wǎng)站: Installation Guide - NGINX Ingress Controller (kubernetes.github.io)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml
我使用的是 with kubectl apply, using YAML manifests; 使用yaml的方式部署
注意在線的方式部署,需要將yaml中的image先down下來。如果down不下來,可以使用國內(nèi)的一些鏡像倉庫
準備容器主要是學(xué)習(xí)B站上黑馬的課程中的文件
Kubernetes(K8S) 入門進階實戰(zhàn)完整教程,黑馬程序員K8S全套教程(基礎(chǔ)+高級)_嗶哩嗶哩_bilibili
創(chuàng)建tomcat-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: dev
spec:
replicas: 3
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- name: nginx
image: nginx:1.17.1
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
namespace: dev
spec:
replicas: 3
selector:
matchLabels:
app: tomcat-pod
template:
metadata:
labels:
app: tomcat-pod
spec:
containers:
- name: tomcat
image: tomcat:8.5-jre10-slim
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
namespace: dev
spec:
selector:
app: nginx-pod
clusterIP: None
type: ClusterIP
ports:
- port: 80
targetPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: tomcat-service
namespace: dev
spec:
selector:
app: tomcat-pod
clusterIP: None
type: ClusterIP
ports:
- port: 8080
targetPort: 8080
# 創(chuàng)建
[root@master ~]# kubectl create -f tomcat-nginx.yaml
# 查看
[root@master ~]# kubectl get svc -n dev
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-service ClusterIP None <none> 80/TCP 48s
tomcat-service ClusterIP None <none> 8080/TCP 48s
Http代理
創(chuàng)建ingress-http.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-http
namespace: dev
spec:
rules:
- host: nginx.itheima.com
http:
paths:
- path: /
backend:
serviceName: nginx-service
servicePort: 80
- host: tomcat.itheima.com
http:
paths:
- path: /
backend:
serviceName: tomcat-service
servicePort: 8080
問題: 通過上述配置好之后,通過瀏覽器,不能訪問?

image.png
開始分析問題
- 檢查 ingress 服務(wù)
kubectl get service -n ingress-nginx

image.png
- 檢查ingress 的pod信息
kubectl get pods -n ingress-nginx

image.png
- 檢查應(yīng)用服務(wù),主要工作空間
kubectl get service -n dev

image.png
- 檢查應(yīng)用的pod
kubectl get pods -n dev -o wide

image.png
-
驗證容器服務(wù)的正確性
image.png
通過ingress service來查看NGINX也是正常的,不知道哪里問

image.png
最后在一個b站的視頻上看到,要把這個配置給注釋掉,也就是去掉,問題解決.
externalTrafficPolicy: Local
