成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

京東云Kubernetes集群最佳實踐

劉永祥 / 1832人閱讀

摘要:京東云集群最佳實踐容器是的基石,它們之間的關(guān)系不言而喻。因此我們今天的文章將會和大家分享關(guān)于京東云集群的部分最佳實踐。京東云集群采用管理節(jié)點全托管的方式,為用戶提供簡單易用高可靠功能強大的容器管理服務(wù)。

京東云Kubernetes集群最佳實踐

容器是Cloud Native的基石,它們之間的關(guān)系不言而喻。了解容器對于學(xué)習(xí)Cloud Native也是十分重要的。近期,京東云Cloud Native的“在線公開課”從理論和實踐兩個層面為大家分享了Cloud Native相關(guān)的技術(shù)知識。在本周的周日,我們還將迎來”Cloud Native時代的應(yīng)用之路與開源創(chuàng)新“專場技術(shù)沙龍。

因此我們今天的文章將會和大家分享關(guān)于京東云Kubernetes集群的部分最佳實踐。感興趣的小伙伴也可以跟著文檔自己動手進行創(chuàng)建。

京東云Kubernetes集群采用管理節(jié)點全托管的方式,為用戶提供簡單易用、高可靠、功能強大的容器管理服務(wù)。該產(chǎn)品完全兼容標(biāo)準(zhǔn)Kubernetes API ,集成京東云網(wǎng)絡(luò)、存儲等插件。Kubernetes集群服務(wù)簡化了Kubernetes部署、管理,降低了Kubernetes使用門檻,增強應(yīng)用的可靠性,提升開發(fā)的效率,同時,也能更好地幫助用戶減少資源投入的成本。

最佳實踐——部署應(yīng)用


部署持久化存儲

京東云Kubernetes集群服務(wù)集成了京東云云硬盤,您可以在集群中使用京東云云硬盤作為持久化存儲;

使用京東云云盤定義靜態(tài)存儲

1. 創(chuàng)建PV
kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-static
  labels:
    type: jdcloud-ebs
spec:
  capacity:
    storage: 30Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  jdcloudElasticBlockStore:
    volumeID: vol-ogcbkdjg7x
    fsType: xfs


參數(shù)說明:

1、如您需要在京東云Kubernetes集群服務(wù)中使用京東云云硬盤作為持久化存儲,請在PersistentVolume定義時,指定插件jdcloudElasticBlockStore;

2、VolumeID:指定同地域下為Kubernetes集群服務(wù)提供持久化存儲的云硬盤ID;

3、Fstype:指定文件系統(tǒng)類型;目前僅支持ext4和xfs兩種;

4、Capacity:PV 將具有特定的存儲容量。這是使用 PV 的容量屬性設(shè)置的;

5、PersistentVolume 可以以資源提供者支持的任何方式掛載到主機上。

京東云云硬盤目前只支持一種模式ReadWriteOnce——該卷可以被單個節(jié)點以讀/寫模式掛載;

訪問模式包括:
ReadWriteOnce——該卷可以被單個節(jié)點以讀/寫模式掛載

在命令行中,訪問模式縮寫為:
RWO - ReadWriteOnce
京東云為PersistentVolume提供了插件,插件類型為:jdcloudElasticBlockStore

注:

由于云硬盤限制一個云硬盤只能同時掛載一個云主機,在使用基于PVC的Pod時,建議使用replicas=1來創(chuàng)建一個部署集。StatefulSet可解決多副本問題。

Pod遷移,PVC遷移(卸載舊實例/掛載新實例)默認(rèn)35秒。

通過Deployment部署,刪除Deployment之后,可重新掛載原有PVC到新的Pod里面。

2. 創(chuàng)建PVC

聲明可以指定一個標(biāo)簽選擇器來進一步過濾該組卷。只有標(biāo)簽與選擇器匹配的卷可以綁定到聲明。選擇器由兩個字段組成:

所有來自 MatchLabels 和 MatchExpressions 的要求都被“與”在一起——它們必須全部滿足才能匹配。

本例使用MatchLabels作為過濾條件,將匹配的PersistentVolume綁定到Persistent Volume Claim。

MatchLabels:Volume 必須有具有該值的標(biāo)簽

matchExpressions:這是一個要求列表,通過指定關(guān)鍵字,值列表以及與關(guān)鍵字和值相關(guān)的運算符組成。有效的運算符包括 In、NotIn、Exists 和 DoesNotExist。

訪問模式包括:ReadWriteOnce——該卷可以被單個節(jié)點以讀/寫模式掛載。

在命令行中,訪問模式縮寫為:RWO - ReadWriteOnce

京東云為Persistent Volume提供了插件,插件類型為:jdcloudElasticBlockStore

注:副本數(shù)只能指定1。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-static-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: ""
  resources:
    requests:
      storage: 30Gi
  selector:
    matchLabels:
      type: jdcloud-ebs




創(chuàng)建Pod

kind: Pod

   apiVersion: v1
   metadata:
     name: pod-static
   spec:
     volumes:
       - name: pv-static
         persistentVolumeClaim:
           claimName: pv-static-pvc

  containers:
    - name: busybox-static
      image: busybox
      command:
         - sleep
         - "600"
      imagePullPolicy: Always
      volumeMounts:
        - mountPath: "/usr/share/mybusybox/"
          name: pv-static




使用京東云云盤定義動態(tài)存儲

當(dāng)集群中的靜態(tài) PV 都不匹配新建的 Persistent Volume Claim 時,集群可能會嘗試動態(tài)地為 PVC 創(chuàng)建卷。

關(guān)于京東云云硬盤規(guī)格:

創(chuàng)建PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc1
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: jdcloud-ssd
  resources:
    requests:
      storage: 20Gi

查看集群的PVC

kubectl get pvc

輸出

NAME                                         STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc1                                         Bound     pvc-73d8538b-ebd6-11e8-a857-fa163eeab14b   20Gi       RWO            jdcloud-ssd    18s

查看集群的PV

kubectl get pv

輸出

NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-73d8538b-ebd6-11e8-a857-fa163eeab14b 20Gi RWO Delete Bound default/pvc1 jdcloud-ssd 2m

基于Storage Class jdcloud-ssd,為PVC創(chuàng)建了卷。一旦 PV 和 PVC 綁定后,Persistent Volume Claim 綁定是排他性的,不管它們是如何綁定的。 PVC 跟 PV 綁定是一對一的映射。

2 部署Service

Kubernetes Service

Kubernetes Service定義了這樣一種抽象:一個 Pod 的邏輯分組,一種可以訪問它們的策略-通常稱為微服務(wù)。這一組 Pod 能夠被 Service 訪問到,通常是通過 Label Selector(查看下面了解,為什么可能需要沒有 Selector 的 Service)實現(xiàn)的。一個 Service 在 Kubernetes 中是一個REST對象,和Pod類似.像所有的 REST 對象一樣, Service 定義可以基于 POST 方式,請求 API Server 創(chuàng)建新的實例。

京東云Kubernetes集成負(fù)載均衡服務(wù),支持創(chuàng)建Load Balance類型的Service,為應(yīng)用提供安全、可靠的網(wǎng)絡(luò)。

創(chuàng)建的負(fù)載均衡會占用本地域的負(fù)載均衡配額,需要保證有足夠配額。

1、創(chuàng)建支持Load Balance類型的Service,命名為myservice.yaml文件定義如下:

kind: Service
apiVersion: v1
metadata:
  name: servicetest
  labels:
    run: myapp
spec:
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30062
  type: LoadBalancer
  selector:
     run: myapp

2、執(zhí)行Kubectl創(chuàng)建命令,創(chuàng)建一個Service;其中使用相應(yīng)的YAML文件名稱替換:

kubectl create -f myservice.yaml

3、創(chuàng)建一組Nginx Pod,mynginx.yaml文件定義如下:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      run: myapp
  replicas: 2
  template:
    metadata:
      labels:
        run: myapp
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80

4、執(zhí)行Kubectl創(chuàng)建命令,創(chuàng)建一個Deployment;其中使用相應(yīng)的YAML文件名稱替換

kubectl create -f mynginx.yaml

5、查看已創(chuàng)建成功的Deployment,執(zhí)行以下命令:

kubectl get pods -l run=myapp -o wide

返回結(jié)果如下:

NAME       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
my-nginx   2         2         2            2           4m

6、查看相應(yīng)的Pod運行狀態(tài),

kubectl get pods -l run=myapp -o wide

返回結(jié)果如下:

NAME                        READY     STATUS    RESTARTS   AGE       IP            NODE
my-nginx-864b5bfdc7-6297s   1/1       Running   0          23m       172.16.0.10   k8s-node-vmtwjb-0vy9nuo0ym
my-nginx-864b5bfdc7-lr7gq   1/1       Running   0          23m       172.16.0.42   k8s-node-vm25q1-0vy9nuo0ym

7、查看Service詳情:

kubectl describe service servicetest
可以查看綁定到Service的Endpoints:

Name:                     servicetest
Namespace:                default
Labels:                   run=myapp
Annotations:              
Selector:                 run=myapp
Type:                     LoadBalancer
IP:                       172.16.61.58
LoadBalancer Ingress:     114.67.227.25
Port:                       80/TCP
TargetPort:               80/TCP
NodePort:                   30062/TCP
Endpoints:                172.16.0.10:80,172.16.0.42:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type     Reason                      Age                From                Message
  ----     ------                      ----               ----                -------
  Normal   EnsuringLoadBalancer        11m (x9 over 26m)  service-controller  Ensuring load balancer
  Normal   EnsuredLoadBalancer         10m                service-controller  Ensured load balancer

注:Load Balancer Ingress:114.67.227.25為外部公網(wǎng)IP

8、執(zhí)行如下命令查詢綁定到service的enpoints列表:

kubectl get ep servicetest
返回

NAME          ENDPOINTS                       AGE
servicetest   172.16.0.10:80,172.16.0.42:80   28m

9、在瀏覽器中輸入與Service關(guān)聯(lián)的Load Balance公網(wǎng)IP及端口,看到如下頁面,即表明Nginx服務(wù)正常。

·END·

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/32954.html

相關(guān)文章

  • 京東Kubernetes集群最佳實踐

    摘要:京東云集群最佳實踐容器是的基石,它們之間的關(guān)系不言而喻。因此我們今天的文章將會和大家分享關(guān)于京東云集群的部分最佳實踐。京東云集群采用管理節(jié)點全托管的方式,為用戶提供簡單易用高可靠功能強大的容器管理服務(wù)。 京東云Kubernetes集群最佳實踐 容器是Cloud Native的基石,它們之間的關(guān)系不言而喻。了解容器對于學(xué)習(xí)Cloud Native也是十分重要的。近期,京東云Cloud N...

    XGBCCC 評論0 收藏0
  • CloudBest:年度復(fù)盤丨盤點2020無處不在的「原生」

    摘要:華為云華為云在云原生這場游戲中,最具競爭力的玩家之一。年,金山云在云原生領(lǐng)域推出了三款重磅產(chǎn)品星曜裸金屬服務(wù)器云服務(wù)器和云盤。在線上智博會上,浪潮云發(fā)布了經(jīng)過全新迭代升級的浪潮云,進一步提升平臺云原生服務(wù)能力。面對數(shù)字時代復(fù)雜系統(tǒng)的不確定性,傳統(tǒng)的 IT 應(yīng)用架構(gòu)研發(fā)交付周期長、維護成本高、創(chuàng)新升級難,煙囪式架構(gòu),開放性差、組件復(fù)用度低,這些都成為了企業(yè)業(yè)務(wù)快速增長的瓶頸。而云原生以其敏捷、...

    Tecode 評論0 收藏0
  • 這大概是今年介紹原生最清晰明了的文章!

    摘要:在本次上,京東云將在大會上為對云原生感興趣的研發(fā)和運維人員帶來利用延遲加載快速啟動容器的話題分享。今天聊的主角云原生也是一樣。 showImg(https://segmentfault.com/img/bVbtNqp?w=688&h=113); showImg(https://segmentfault.com/img/bVbtQaR?w=684&h=327); showImg(http...

    andycall 評論0 收藏0
  • 這大概是今年介紹原生最清晰明了的文章!

    摘要:在本次上,京東云將在大會上為對云原生感興趣的研發(fā)和運維人員帶來利用延遲加載快速啟動容器的話題分享。今天聊的主角云原生也是一樣。 showImg(https://segmentfault.com/img/bVbtNqp?w=688&h=113); showImg(https://segmentfault.com/img/bVbtQaR?w=684&h=327); showImg(http...

    StonePanda 評論0 收藏0
  • 數(shù)人|當(dāng)K8S遇上微服務(wù)-京東金融PaaS平臺思考與實踐

    摘要:平臺上的微服務(wù)架構(gòu)應(yīng)用再來看一下我眼中的基于當(dāng)前最流行的微服務(wù)架構(gòu)的設(shè)計是什么樣的,即我們平臺上要運行的典型應(yīng)用是什么樣的。 showImg(https://segmentfault.com/img/remote/1460000010900878); 8月19日的數(shù)人云Container Meetup上,張龍老師做了《基于Kubernetes的PaaS平臺的設(shè)計和思考》的精彩分享,分別...

    Imfan 評論0 收藏0

發(fā)表評論

0條評論

劉永祥

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<