<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          K3s+Ambassador,強(qiáng)大的輕量級K8S解決方案

          共 4273字,需瀏覽 9分鐘

           ·

          2020-08-20 17:48

          作者簡介

          Richard Li是Datawire的聯(lián)合創(chuàng)始人兼首席執(zhí)行官。Datawire提供了多種流行的開源工具來加速Kubernetes的開發(fā),包括Telepresence(本地開發(fā))和Ambassador API Gateway。此外,Li還曾擔(dān)任過多家技術(shù)公司的資深專家,比如Red Hat。


          Kubernetes為微服務(wù)提供了一個強(qiáng)大的網(wǎng)絡(luò)模式。該模式的主要部分之一是每個pod都有自己的IP地址,在集群內(nèi)可以尋址。因此,每個Kubernetes集群通常有一個扁平的虛擬網(wǎng)絡(luò),使得外部host不能夠直接訪問。那意味著從集群外部的客戶端路由流量到部署在集群內(nèi)的服務(wù)需要進(jìn)行一些額外的工作。對于路由流量到Kubernetes集群內(nèi)部有各種策略,其中最常的方法是使用ingress controller。


          Ingress Controllers


          Ingress controller路由來自集群外部的流量,并負(fù)責(zé)將流量路由到集群內(nèi)部的各個服務(wù)中。Ingress controller的名稱來源與它可以處理Ingress資源,這是一種特殊類型的Kubernetes資源,它指定了這些路由規(guī)則。


          Ingress controller構(gòu)建在諸如HAProxy、NGINX、Traefik以及Envoy Proxy等代理上。Envoy Proxy起初由Lyft編寫和部署,但發(fā)展至今已經(jīng)成為CNCF的其中一個項目,數(shù)十家企業(yè)都對其做了貢獻(xiàn),包括亞馬遜、Airbnb、Google、Pinterest以及VMware。


          K3s、Rancher以及Ambassador


          K3s是一個輕量級Kubernetes發(fā)行版,可以運行在資源有限環(huán)境,例如IoT或邊緣設(shè)備以及部署筆記本上。對于將容器構(gòu)建在Kubernetes上的團(tuán)隊來說,Rancher是一個完整的軟件堆棧。無論是K3s還是Rancher均支持各類功能不同的Ingress controller。


          在本文中,我們將了解如何在K3s上部署Ambassador。Ambassador是基于Envoy Proxy構(gòu)建的開源Ingress controller和API網(wǎng)關(guān)。Ambassador向Kubernetes用戶公開了許多Envoy Proxy的核心功能,包括零宕機(jī)重載、高級流量管理、服務(wù)網(wǎng)格集成(支持Consul、Linkerd和Istio)、可觀察性、TLS終止和靈活的API用于速率限制和認(rèn)證。Ambassador已經(jīng)進(jìn)行了諸多調(diào)整,以便在Kubernetes上獲得最大的性能,并能夠以最少的資源運行。


          部署帶有Ambassador的K3s


          默認(rèn)情況下,K3s將Traefik作為ingress controller。要使用Ambassador和Envoy Proxy需要按照以下步驟操作(這些步驟假設(shè)你已經(jīng)安裝好了K3s,如果你尚未安裝請根據(jù)先快速指南進(jìn)行安裝:

          https://rancher.com/docs/k3s/latest/en/quick-start/


          1、 使用--disable treafik選項啟動K3s。你可以通過編輯/etc/systemd/system/k3s.service進(jìn)行此操作并且編輯ExecStart行:


          ExecStart=/usr/local/bin/k3s \server \--disable traefik \


          2、 重啟K3s


          sudo systemctl daemon-reloadsudo systemctl restart k3s.service


          3、 通過應(yīng)用標(biāo)準(zhǔn)的Ambassador Kubernetes manifest安裝Ambassador(Ambassador也支持Helm安裝:

          https://www.getambassador.io/docs/latest/topics/install/helm/


          kubectl apply -f https://www.getambassador.io/yaml/ambassador/ambassador-crds.yamlkubectl apply -f https://www.getambassador.io/yaml/ambassador/ambassador-rbac.yamlkubectl apply -f https://www.getambassador.io/yaml/ambassador/ambassador-service.yaml


          4、 現(xiàn)在我們將部署一個簡單的服務(wù)。保存以下Kubernetes YAML到文件中,稱為quote.yaml.


          ---apiVersion: v1kind: Servicemetadata:name: quotespec:ports:    - name: httpport: 80targetPort: 8080selector:app: quote---apiVersion: apps/v1kind: Deploymentmetadata:name: quotespec:replicas: 1selector:matchLabels:    app: quotestrategy:type: RollingUpdatetemplate:metadata:    labels:    app: quotespec:    containers:    - name: backend    image: docker.io/datawire/quote:0.4.1    ports:    - name: http        containerPort: 8080


          5、 部署quote服務(wù)到K3s:kubectl apply -f quote.yaml


          6、 Ambassador支持標(biāo)準(zhǔn)的Kubernetes ingress資源進(jìn)行路由。Ingress資源是單體對象,既包括Ingress本身的配置(如TLS配置),也包括路由。然而,官方的ingress標(biāo)準(zhǔn)相當(dāng)有限,所以大多數(shù)Ambassador用戶都依賴Mapping,Mapping是Ambassador特有的自定義資源定義。Mapping資源與Ambassador的部署完全解耦,使得Mapping資源只是用來描述請求路由。將下面的YAML配置保存到一個名為quote-mapping.yaml的文件中。


          ---apiVersion: getambassador.io/v2kind: Mappingmetadata:name: quote-backendspec:prefix: /give-me-a-quote/service: quote


          7、 應(yīng)用配置到集群:

          kubectl apply -f quote-mapping.yaml


          8、 獲取Ambassador LoadBalancer 服務(wù)的IP地址:


          $ sudo kubectl get svcNAME               TYPE           CLUSTER-IP      EXTERNAL-IP    PORT(S)          AGEkubernetes         ClusterIP      10.43.0.1                443/TCP          60mambassador-admin   NodePort       10.43.134.74             8877:31032/TCP   5m15sambassador         LoadBalancer   10.43.61.86     10.128.0.111   80:31347/TCP     89squote              ClusterIP      10.43.129.249            80/TCP           31s


          9、 復(fù)制IP地址并測試配置:

          curl http:///give-me-a-quote/:


          $ curl 10.128.0.111/give-me-a-quote/{"server": "harmonious-strawberry-z6onbsu2","quote": "A small mercy is nothing at all?","time": "2020-07-15T13:59:50.716712445Z"}


          恭喜你!你已經(jīng)成功使用Ambassador來路由一個HTTP請求到quote服務(wù)。


          總? 結(jié)


          Ambassador提供了一套豐富的功能,包括認(rèn)證、速率限制和豐富的協(xié)議支持(如TCP、WebSockets、gRPC、HTTP)。Ambassador還擁有一套經(jīng)過測試的與其他云原生基礎(chǔ)設(shè)施的集成,如監(jiān)控系統(tǒng)和服務(wù)網(wǎng)格。K3s和Ambassador一起使用是一個強(qiáng)大的輕量級Kubernetes解決方案,非常適用于開發(fā)和生產(chǎn)。



          推薦閱讀

          這應(yīng)該是最適合國內(nèi)用戶的K3s HA方案

          在K3s上使用Kong網(wǎng)關(guān)插件,開啟K3s的無限可能!

          如何使用k3OS和Argo進(jìn)行自動化邊緣部署?



          About k3s


          k3s 是目前全球用戶量最大的 CNCF 認(rèn)證輕量級 K8S 發(fā)行版。自 2019 年 3 月發(fā)布以來,備受全球開發(fā)者們關(guān)注。至今,GitHub Stars 數(shù)已超過 13,000,成為了開源社區(qū)最受歡迎的邊緣計算 K8S 解決方案。


          k3s 專為在資源有限的環(huán)境中運行 Kubernetes 的研發(fā)和運維人員設(shè)計,將滿足日益增長的在邊緣計算環(huán)境中運行在 x86、ARM64 和 ARMv7 處理器上的小型、易于管理的 Kubernetes 集群需求。k3s 的發(fā)布,為開發(fā)者們提供了以“Rancher 2.X + k3s”為核心的從數(shù)據(jù)中心到云到邊到端的 K8S 即服務(wù)(Kubernetes-as-a-Service),推動 Kubernetes Everywhere。

          掃碼添加k3s中文社區(qū)助手

          加入官方中文技術(shù)社區(qū)

          官網(wǎng):https://k3s.io

          瀏覽 169
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天操女人 | 爱操视频 | 黄片网站在线播放 | 韩国毛片免费看 | 久久艹综合|