從SLB Ingress遷移到ALB Ingress
自2023年02月28日起,容器服務(wù)ACK Serverless將下線SLB Ingress,您將無法通過集群安裝和管理SLB Ingress Controller組件,并不再提供SLB Ingress技術(shù)支持。建議您盡快將SLB Ingress遷移到ALB Ingress。本文介紹如何從SLB Ingress遷移到ALB Ingress。
背景信息
由于SLB對7層支持能力較弱,例如,不支持HTTP標(biāo)頭改寫、重定向、重寫、限速等,并且需要您自行運(yùn)維實(shí)例規(guī)格,導(dǎo)致SLB Ingress使用受到了很多限制。因此我們推出了專門面向7層的ALB Ingress網(wǎng)關(guān),該網(wǎng)關(guān)提供更為強(qiáng)大的Ingress流量管理方式。
ALB Ingress基于阿里云應(yīng)用型負(fù)載均衡ALB(Application Load Balancer)。相比于SLB Ingress,ALB Ingress具備處理復(fù)雜業(yè)務(wù)路由(支持Header、Cookie)和證書自動(dòng)發(fā)現(xiàn)的能力,支持HTTP、HTTPS和QUIC協(xié)議,更好地滿足在云原生應(yīng)用場景下七層流量處理能力的需求。關(guān)于ALB與SLB功能對比,請參見負(fù)載均衡SLB產(chǎn)品家族介紹。
遷移流程
遷移示例
本文使用以下Ingress,并將Ingress的端點(diǎn)解析到域名demo.ingress.vip,以此為例進(jìn)行遷移介紹。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: demo-ingress
namespace: default
spec:
ingressClassName: slb
rules:
- host: demo.ingress.vip
http:
paths:
- backend:
service:
name: nginx
port:
number: 80
path: /
pathType: Prefix
在瀏覽器地址欄中輸入demo.ingress.vip,瀏覽器顯示Welcome to nginx!。
步驟一:創(chuàng)建ALB Ingress
安裝ALB Ingress Controller組件。具體操作,請參見管理ALB Ingress Controller組件。
創(chuàng)建ALBConfig。
使用以下內(nèi)容,創(chuàng)建albconfig.yaml。
apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: alb-demo spec: config: name: alb-test addressType: Internet zoneMappings: - vSwitchId: vsw-wz9e2usil7e5an1xi**** - vSwitchId: vsw-wz92lvykqj1siwvif**** listeners: - port: 80 protocol: HTTP
zoneMappings:設(shè)置ALB Ingress交換機(jī)ID,您需要至少指定兩個(gè)不同可用區(qū)交換機(jī)ID,且交換機(jī)必須與集群屬于同一VPC。
執(zhí)行以下命令,創(chuàng)建ALBConfig。
kubectl apply -f albconfig.yaml
執(zhí)行以下命令,查看ALB實(shí)例是否創(chuàng)建成功。
kubectl get albconfig <albconfig的名稱>
預(yù)期輸出:
NAME ALBID DNSNAME PORT&PROTOCOL CERTID AGE alb-demo alb-eeee6gtqbmrm19**** alb-eeee6gtqbmrm19****.cn-shenzhen.alb.aliyuncs.com 27s
創(chuàng)建IngressClass。
使用以下內(nèi)容,創(chuàng)建ingressclass.yaml。
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb spec: controller: ingress.k8s.alibabacloud/alb parameters: apiGroup: alibabacloud.com kind: AlbConfig name: alb-demo
parameters.name:ALBConfig名稱,用于綁定ALBConfig。
執(zhí)行以下命令,創(chuàng)建IngressClass。
kubectl apply -f ingressclass.yaml
創(chuàng)建ALB Ingress。
使用以下內(nèi)容,創(chuàng)建albingress.yaml。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: demo-ingress-alb namespace: default spec: ingressClassName: alb rules: - host: demo.ingress.vip http: paths: - backend: service: name: nginx port: number: 80 path: / pathType: Prefix
name:Ingress名稱,與SLB Ingress的名稱不能相同。
ingressClassName:IngressClass的名稱。
執(zhí)行以下命令,創(chuàng)建ALB Ingress。
kubectl apply -f albingress.yaml
執(zhí)行以下命令,獲取ALB Ingress的端點(diǎn)。
kubectl get ing
預(yù)期輸出:
NAME CLASS HOSTS ADDRESS PORTS AGE demo-ingress slb demo.ingress.vip 120.79.**.** 80 35m demo-ingress-alb alb demo.ingress.vip alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com 80 10m 46s
從返回結(jié)果中獲取ALB Ingress的端點(diǎn),例如本文為alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com 。
執(zhí)行以下命令,使用ALB Ingress訪問Nginx。
curl -H "Host: demo.ingress.vip" http://alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com
預(yù)期輸出:
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> .............
步驟二:切流到ALB Ingress
將demo.ingress.vip綁定的SLB端點(diǎn)修改為ALB的端點(diǎn),實(shí)現(xiàn)使用ALB Ingress訪問Nginx服務(wù)。
登錄云解析控制臺(tái)。
在域名解析頁面,全部域名頁簽下,單擊域名名稱。
在解析設(shè)置頁面,單擊目標(biāo)解析記錄操作列下的修改。
在修改記錄對話框?qū)?b data-tag="uicontrol" id="uicontrol-4yt-a31-wdh" class="uicontrol">記錄值修改為ALB Ingress的端點(diǎn)(本文為alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com),然后單擊確定。
在瀏覽器地址欄中輸入demo.ingress.vip。
瀏覽器顯示Welcome to nginx!,說明使用ALB Ingress訪問Nginx服務(wù)成功,從SLB Ingress切流到ALB Ingress成功。
步驟三:刪除SLB Ingress
刪除SLB Ingress。
在集群管理頁左側(cè)導(dǎo)航欄,選擇 。
在路由頁面上方,選擇命名空間,在SLB Ingress右側(cè)操作列,選擇 。
在彈出的對話框,單擊確定。
卸載SLB Ingress Controller。
登錄容器服務(wù)管理控制臺(tái),在左側(cè)導(dǎo)航欄選擇集群。
在集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇 。
在組件管理頁面,單擊其他頁簽,在SLB Ingress Controller卡片,單擊卸載。
在彈出的對話框,單擊確定。
FAQ
SLB Ingress是否支持平滑遷移到ALB Ingress?
由于ALB與SLB屬于不同的負(fù)載均衡網(wǎng)關(guān),不支持平滑遷移。