Kubernetes 實踐 第二篇: 部署應用到集羣上

此係列文章爲團隊內部的實踐總結和培訓資料, 去除敏感信息保留公共部分與你們共享. 首先須要你們對Docker和Kubernetes有必定的基礎瞭解, 文章再也不對容器集羣是什麼的問題進行論述. 着重於怎麼作爲何. 目標是讓有容器相關基礎概念的讀者參考此係列文章, 可以將手上的程序在Kubernetes中以符合雲原生的方式運行起來.html

目錄:前端

  1. Kubernetes 實踐 第一篇: 程序容器化
  2. Kubernetes 實踐 第二篇: 部署應用到集羣上
  3. Kubernetes 實踐 第三篇: 基於Gitlab的CI/CD
  4. Kubernetes 實踐 第四篇: 存儲
  5. Kubernetes 實踐 第五篇: 配置管理
  6. Kubernetes 實踐 第六篇: 日誌管理
  7. Kubernetes 實踐 第七篇: 微服務鏈路追蹤
  8. Kubernetes 實踐 第八篇: Golang 程序完整實現和 Demo
  9. Kubernetes 實踐 第九篇: PHP 程序的完整實現和 Demo

準備工做

  1. 學習 kubernetes 基礎知識, 掌握 kubectl 的操做.
  2. 登陸集羣服務後臺獲取集羣用戶相關配置信息, 保證以用戶身份的配置可以正常操做集羣, 瞭解當前集羣的狀態.
  3. 基於 Gitlab 託管代碼, 執行CI/CD流水線, 你能夠根據實際狀況調整此項.
  4. 樣例項目爲Go編寫, 其它語言亦可,只要完成容器化便可.

建立應用

若是是此應用以前沒有部署到 kubernetes 集羣上, 首先須要建立應用, 如下步驟均可以在圖形界面上完成. 注意如下幾點:nginx

  • 測試服務使用 gitlab 的 registry
  • 測試服務一概不設置資源 request
  • 正式服務使用阿里雲的 registry
  • 正式服務根據實際狀況設置 limit request HPA
  1. 建立名爲 api-conf 的 configmap, data 中 app.confgit

    apiVersion: v1
    kind: ConfigMap
    data:
      app.conf: > appname = api httpport = 80 runmode = prod ... 複製代碼
  2. 建立名爲 api 的 deployment, 注意設置 registry 地址和 imagePullSecrets, 而且引用以前建立的ConfigMap, 映射到程序的配置文件上.後端

    apiVersion: apps/v1beta2
    kind: Deployment
    labels:
     app: api
    name: api
    namespace: prod
    selector:
     matchLabels:
     app: api
     spec:
     containers:
     - image: >-
                registry.gitlab.dreamdev.cn/sample/api:latest
     name: api
     imagePullSecrets:
     - name: sample-cr
    複製代碼
  3. 建立名爲 api 的 serviceapi

    apiVersion: v1
    kind: Service
    metadata:
    name: api
    namespace: sample-prod
    spec:
    ports:
    - name: "80"
     port: 80
     protocol: TCP
     targetPort: 80
    selector:
     app: api
    sessionAffinity: None
    type: ClusterIP
    複製代碼
  4. 在 ingress 中加入本服務的路由bash

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: ingress-nginx-dteacher
spec:
  rules:
    - host: api.example.com
      http:
        paths:
          - backend:
              serviceName: api
              servicePort: 80
            path: /
複製代碼

這樣就完成了最簡單的一個程序部署到集羣上並經過ingress提供訪問接口.session

招聘

讀書郎教育科技是教育電子行業的頭部企業, 當前咱們正在作教育信息化的平臺和在線直播教育兩個巨大前景的事業. 辦公地點在珠海. 如今前端 後端 Android開放招聘, 歡迎志同道合的朋友來和我聊聊.app

招聘主頁地址: www.zhipin.com/gongsir/ad0…微服務

相關文章
相關標籤/搜索