91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

k8s中ingress的安裝方法

發布時間:2021-07-07 16:55:01 來源:億速云 閱讀:235 作者:chen 欄目:云計算

這篇文章主要講解了“k8s中ingress的安裝方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“k8s中ingress的安裝方法”吧!

在Kubernetes中,服務和Pod的IP地址僅可以在集群網絡內部使用,對于集群外的應用是不可見的。為了使外部的應用能夠訪問集群內的服務,在Kubernetes 目前 提供了以下幾種方案:
1.NodePort

    NodePort 服務是暴露服務的最原始方式。 顧名思義,NodePort 會在所有節點(VM)上打開一個特定的端口,并且發送到此端口的任何流量都將轉發到該服務。 這種方式主要有以下缺點:

  • 每個端口只能有一個服務

  • 默認您只能使用端口30000-32767

基于以上原因,我不建議在生產環境上用這種方式暴露服務。如果你運行的服務不要求一直可用,或者對成本比較敏感,你可以使用這種方法。這樣的應用的最佳例子是 demo 應用,或者某些臨時應用。

2.LoadBalancer

LoadBalancer 服務是暴露服務到 internet 的標準方式。這種方式會啟動一個 Network Load Balancer,它將給你一個單獨的 IP 地址,轉發所有流量到你的服務。

如果你想要直接暴露服務,這就是默認方式。所有通往你指定的端口的流量都會被轉發到對應的服務。它沒有過濾條件,沒有路由等。這意味著你幾乎可以發送任何種類的流量到該服務,像 HTTP,TCP,UDP,Websocket,gRPC 或其它任意種類。

這個方式的最大缺點是每一個用 LoadBalancer 暴露的服務都會有它自己的 IP 地址,每個用到的 LoadBalancer 都需要付費,這將是非常昂貴的。

3.Ingress

有別于以上所有例子,Ingress 事實上不是一種服務類型。相反,它處于多個服務的前端,扮演著“智能路由”或者集群入口的角色。

你可以用 Ingress 來做許多不同的事情,各種不同類型的 Ingress 控制器也有不同的能力。

默認 ingress 控制器是啟動一個 HTTP(S) Load Balancer[3]。它允許你基于路徑或者子域名來路由流量到后端服務。例如,你可以將任何發往域名 foo.yourdomain.com 的流量轉到 foo 服務,將路徑 yourdomain.com/bar/path 的流量轉到 bar 服務。

基于以上情況,建議各位還是采用Ingress。以下是我基于1.20版本的安裝實操

步驟1:

下載mandatory.yaml和service-nodeport.yaml,mandatory.yaml主要是安裝nginx-ingress-controller( 具體實現反向代理及負載均衡的程序,對ingress定義的規則進行解析,根據配置的規則來實現請求轉發 )。service-nodeport.yaml主要是負責對外提供服務,如果不需要可以不下載(service-nodeport其實就是個簡單的service服務需要對外服務需要開通個nodePort即可讓外部訪問k8s內部服務,具體我們后面再講)

下載mandatory.yaml,下載地址是:https://github.com/kubernetes/ingress-nginx/tree/nginx-0.30.0/deploy/static

k8s中ingress的安裝方法

下載完成后我們需要對mandatory.yaml進行簡單的修改

1、將文件中的rbac.authorization.k8s.io/v1beta1 替換成 rbac.authorization.k8s.io/v1 原因是1.20版本已經v1beta1版本已經過期,所以最好是改成v1不然會告警或報錯。

2、設置k8s使用主機網絡(可選)

這里需要注意的是如果是自己服務器(非啊里云,騰訊云等云服務器,配置成 Network 之后是可以不需要創建一個nodePort的svc, 而是直接在每個節點都創建一個ingress-controller的容器,而且將該容器的網絡模式設為hostNetwork。也就是說每個節點物理機的80和443端口將會被ingress-controller中的nginx容器占用。當流量通過80/443端口進入時,將直接進入到nginx中。而后nginx根據ingress規則再將流量轉發到對應的web應用容器中。 上面的service-nodeport.yaml文件是可以不下載的),我這邊測試,所以也設置成netWork模式

k8s中ingress的安裝方法

3、安裝

    運行kubectl apply -f mandatory.yaml

k8s中ingress的安裝方法

出現以下界面表示安裝成功,如果失敗可以kubectl delete -f mandatory.yaml清空已安裝的pod和configmap,然后根據實際報錯修改mandatory.yaml再重試

大家留意這張圖,如果hostNetwork設置為true紅色框框部分顯示的就是你自己的主機IP(真實IP),如果不設置則會顯示虛擬IP(10.***這種)我因為是啊里云服務器所以這里的IP顯示的是啊里云的內網IP 172.23.78.148。

k8s中ingress的安裝方法

下載service-nodeport.yaml 地址是:https://github.com/kubernetes/ingress-nginx/tree/nginx-0.30.0/deploy/static/provider/baremetal

k8s中ingress的安裝方法

修改service-nodeport.yaml,因為我們需要外部進行訪問以必須要開通個nodePort紅色框框部分就是我們對外的端口,端口我隨便弄的。

k8s中ingress的安裝方法

安裝service

kubectl apply -f service-nodeport.yaml

k8s中ingress的安裝方法

看到以下信息表示運行成功,這里可以看到我們訪問30080映射的是內部80端口,30443映射的是443端口

我們在瀏覽器上輸入http://{服務器外網IP}:30080/會顯示以下界面

k8s中ingress的安裝方法

這表示ingress已經成功安裝。

為了看演示效果,我們可以下個tomcat鏡像來測試下

docker search tomcat

k8s中ingress的安裝方法

我們挑選個tomcat安裝一下

docker pull tomcat

k8s中ingress的安裝方法

編寫tomcat-demo腳本

cat >>~/tomcat-demo.yaml <<EOF
apiVersion: v1
kind: Service
metadata:
  name: tomcat
  namespace: default
spec:
  selector:
    app: tomcat
    release: canary
  ports:
  - name: http
    port: 8080
    targetPort: 8080
  - name: ajp
    port: 8009
    targetPort: 8009
 
---
apiVersion: apps/v1
kind: Deployment
metadata: 
  name: tomcat-deploy
spec:
  replicas: 1
  selector: 
    matchLabels:
      app: tomcat
      release: canary
  template:
    metadata:
      labels:
        app: tomcat
        release: canary
    spec:
      containers:
      - name: tomcat
        image: tomcat:latest
        ports:
        - name: httpd
          containerPort: 8080
        - name: ajp
          containerPort: 8009
EOF

運行腳本

kubectl apply -f tomcat-demo.yaml

看到以下界面表示tomcat服務成功啟動

k8s中ingress的安裝方法

然后我們創建個ingress測試

cat >>~/tomcat-ingress.yaml <<EOF
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-tomcat
  namespace: default
  annotations: 
    kubernets.io/ingress.class: "nginx"
spec:
  rules:
  - http:
      paths:
      - path: /t1/
        backend:
          serviceName: tomcat
          servicePort: 8080
EOF

運行腳本

kubectl apply -f tomcat-ingress.yaml

運行kubectl get ingress 看到以下界面表示ingress資源創建成功

k8s中ingress的安裝方法

這時我們在瀏覽器上輸入http://{服務器外網IP}:30080/t1/會顯示以下界面

k8s中ingress的安裝方法

感謝各位的閱讀,以上就是“k8s中ingress的安裝方法”的內容了,經過本文的學習后,相信大家對k8s中ingress的安裝方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

松滋市| 西吉县| 桑日县| 资溪县| 张掖市| 达孜县| 光泽县| 阳高县| 越西县| 兴宁市| 固安县| 龙岩市| 姚安县| 电白县| 隆子县| 文安县| 宁国市| 博爱县| 和政县| 东光县| 宿迁市| 胶州市| 宜黄县| 仙游县| 杭州市| 专栏| 奉贤区| 于都县| 施甸县| 措勤县| 修文县| 通山县| 晋中市| 鸡东县| 台州市| 循化| 家居| 资中县| 南皮县| 类乌齐县| 绥中县|