k8s ingress-nginx網(wǎng)絡(luò)無法訪問到容器問題

安裝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

開始分析問題

  1. 檢查 ingress 服務(wù)
 kubectl get service -n ingress-nginx
image.png
  1. 檢查ingress 的pod信息
kubectl get pods -n ingress-nginx
image.png
  1. 檢查應(yīng)用服務(wù),主要工作空間
kubectl get service -n dev
image.png
  1. 檢查應(yīng)用的pod
kubectl get pods  -n dev -o wide
image.png
  1. 驗證容器服務(wù)的正確性


    image.png

通過ingress service來查看NGINX也是正常的,不知道哪里問


image.png

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

externalTrafficPolicy: Local

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容