Kubernetes Ingress:靈活的集群外部網(wǎng)絡(luò)訪問(wèn)的利器

閱讀:508 2023-11-08 23:44:02

?

前提條件

  • 您已經(jīng)擁有一個(gè) Kubernetes 集群,并且可以訪問(wèn)該集群。
  • 您已經(jīng)安裝了 kubectl 命令行工具。

版本選擇

安裝前需要選擇兼容你Kubernetes的版本,不能會(huì)失敗。

ingress由兩部分組成:

  • Ingress Controller:負(fù)責(zé)處理 Ingress 請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)到正確的服務(wù)。
  • Ingress 資源對(duì)象:定義 Ingress 規(guī)則,包括路由規(guī)則、負(fù)載均衡、SSL/TLS 保護(hù)等。

以下就是具體的安裝步驟:

安裝 Ingress Controller

Ingress Controller 是負(fù)責(zé)處理 Ingress 請(qǐng)求的組件。Kubernetes 提供了多種 Ingress Controller,您可以根據(jù)需要選擇。以下是常用的 Ingress Controller:

  • Nginx Ingress Controller:基于 Nginx 的 Ingress Controller,功能強(qiáng)大,易于配置。
  • HAProxy Ingress Controller:基于 HAProxy 的 Ingress Controller,性能優(yōu)異,適用于高并發(fā)場(chǎng)景。
  • Contour Ingress Controller:基于 Envoy 的 Ingress Controller,功能豐富,適用于多云場(chǎng)景。

在本教程中,我們將使用 Nginx Ingress Controller 進(jìn)行演示。

復(fù)制
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.4.0/deploy/static/provider/cloud/deploy.yaml
  • 1.
 

一定要把版本后面帶的@摘要值刪除掉。

要?jiǎng)?chuàng)建 Ingress 資源對(duì)象,您可以使用 kubectl 命令:

復(fù)制
kubectl apply -f deploy.yaml
#安裝后查看安裝結(jié)果
kubectl  get pods  -n ingress-nginx
  • 1.
  • 2.
  • 3.
 

看到下圖的結(jié)果就代表成功了,只要controller是Running,其它是Completed就可以了。

如果發(fā)現(xiàn)安裝失敗,可以嘗試刪除pod再重新kubectl apply -f deploy.yaml。

復(fù)制
#強(qiáng)制刪除pod
kubectl delete pod --all -n ingress-nginx --force --grace-period=0
kubectl apply -f deploy.yaml
  • 1.
  • 2.
  • 3.
 

如果想查看具體的失敗原因,可以使用下面的命令。

復(fù)制
kubectl  get pods  -n ingress-nginx
kubectl describe pod ingress-nginx-controller-6c978d4999-vqfwp --namespace ingress-nginx
  • 1.
  • 2.
 

發(fā)部署應(yīng)用

vim nginx-deploy.yaml:

復(fù)制
apiVersion: apps/v1
kind: Deployment metadata: labels: app: nginx-demo
  name: nginx-demo
spec: replicas: 2 selector: matchLabels: app: nginx
  template: metadata: labels: app: nginx
    spec: containers: - image: nginx
        name: nginx --- apiVersion: v1
kind: Service metadata: labels: app: nginx
  name: nginx
spec: selector: app: nginx
  ports: - port: 8000 protocol: TCP
    targetPort: 80
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
 
復(fù)制
kubecl apply -f nginx-deploy.yaml

kubectl get pod,svc
  • 1.
  • 2.
  • 3.
 

Ingress資源對(duì)象

vim ingress-nginx.yaml:

復(fù)制
apiVersion: networking.k8s.io/v1
kind: Ingress  
metadata:
  name: ingress-nginx
spec:
  ingressClassName: nginx
  rules:
  - host: "demo.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: nginx
            port:
              number: 8000
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
 

沒(méi)有域名可以自己在/etc/hosts 增加demo.com:

復(fù)制
kubecl apply -f ingress-nginx.yaml

kubectl get ing
  • 1.
  • 2.
  • 3.
 

查看端口:

復(fù)制
kubectl  get pods,svc  -n ingress-nginx
  • 1.
 

總結(jié)

一般安裝都會(huì)失敗,主要是國(guó)內(nèi)無(wú)法下載鏡像。可以看到第一個(gè)deploy.yaml中要下載兩個(gè)鏡像文件分別是:

  • registry.k8s.io/ingress-nginx/controller:v1.4.0。
  • registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343。

有幾種解決方案:

  • 改成國(guó)內(nèi)鏡像源,一般舊怎么的還是比較多的,新版本還是比較少。
  • 安裝個(gè)代理,然后下載。
  • 手動(dòng)下載鏡像tar,再docker load進(jìn)本地鏡像庫(kù)里。使用tag修改鏡像tag:
復(fù)制
docker tag old_image_name new_image_name
相關(guān)文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感興趣
推薦閱讀 更多>
推薦商標(biāo)

{{ v.name }}

{{ v.cls }}類

立即購(gòu)買 聯(lián)系客服
主站蜘蛛池模板: 亚洲国产av高清无码| 小SAO货水好多真紧H无码视频| 亚洲a∨无码男人的天堂| 亚洲精品自偷自拍无码| 办公室丝袜激情无码播放| 久久国产精品无码一区二区三区| 国产精品无码久久久久久久久久| 亚洲国产精品无码久久SM| 麻豆亚洲AV成人无码久久精品| 国产成人无码av| 影音先锋无码a∨男人资源站| 午夜福利av无码一区二区| 国产成人无码精品久久久久免费| 久久久久亚洲av无码专区喷水 | 免费无码av片在线观看| 亚洲中文字幕无码爆乳app| 无码少妇一区二区性色AV| 中文字幕无码乱人伦| 狠狠躁天天躁无码中文字幕| 毛片一区二区三区无码| 亚洲综合久久精品无码色欲| 国产精品多人p群无码 | 无码中文人妻在线一区二区三区| 国产拍拍拍无码视频免费| 成人无码午夜在线观看| 亚洲国产精品无码久久九九| 成人免费a级毛片无码网站入口| 亚洲天然素人无码专区| 无码人妻一区二区三区免费手机| 少妇无码一区二区三区| 日韩精品真人荷官无码| 亚洲AV无码成人专区| 69ZXX少妇内射无码| 精品人妻无码区二区三区| 久久AV无码精品人妻糸列| 亚洲AV无码AV男人的天堂| 无码精品一区二区三区免费视频 | 亚洲国产av无码精品| 台湾无码AV一区二区三区| 亚洲欧洲美洲无码精品VA| 无码国产精品一区二区免费模式|