国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微服務(wù)探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka

這篇具有很好參考價(jià)值的文章主要介紹了微服務(wù)探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1 安裝Redis

1.1創(chuàng)建配置文件redis.conf

切換到自己的目錄下如本文是放在/home/ubuntu下

  • cd /home/ubuntu
  • vim redis.conf
bind 0.0.0.0
protected-mode yes
port 6379
requirepass qwe123456
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "/tmp/redis.log"
databases 16
always-show-logo no
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data

1.2創(chuàng)建deployment配置文件

  • vim redis.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: redis-single-node
  name: redis-single-node
spec:
  progressDeadlineSeconds: 600    #部署進(jìn)度截止時(shí)間
  replicas: 1  #副本數(shù)
  revisionHistoryLimit: 10   #修訂歷史記錄限制數(shù)
  selector:
    matchLabels:
      app: redis-single-node #選擇器,用于選擇匹配的Pod
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: redis-single-node
    spec:
      containers:
      - command:
        - sh
        - -c
        - redis-server "/mnt/redis.conf"
        env:
        - name: TZ
          value: Asia/Shanghai
        - name: LANG
          value: C.UTF-8
        image: redis:5.0.4-alpine #Redis鏡像版本
        imagePullPolicy: IfNotPresent
        lifecycle: {}
        livenessProbe:
          failureThreshold: 2    #失敗的最大次數(shù)2次
          initialDelaySeconds: 10  #啟動(dòng)容器后10秒開始檢測(cè)
          periodSeconds: 10  #每過10s檢測(cè)一次
          successThreshold: 1  #只要成功了1次,就表示成功了。
          tcpSocket:
            port: 6379
          timeoutSeconds: 2
        name: redis-single-node
        ports:
        - containerPort: 6379
          name: web
          protocol: TCP
        readinessProbe:
          failureThreshold: 2
          initialDelaySeconds: 10
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: 6379
          timeoutSeconds: 2
        resources:   #資源限制
          limits:    #最多可使用的資源
            cpu: 100m #CPU的計(jì)量單位叫毫核(m)。一個(gè)節(jié)點(diǎn)的CPU核心數(shù)量乘以1000,得到的就是節(jié)點(diǎn)總的CPU總數(shù)量。如,一個(gè)節(jié)點(diǎn)有兩個(gè)核,那么該節(jié)點(diǎn)的CPU總量為2000m
            memory: 339Mi
          requests:  #代表容器啟動(dòng)請(qǐng)求的資源限制,分配的資源必須要達(dá)到此要求 
            cpu: 10m
            memory: 10Mi
        securityContext: #上下文參數(shù)
          privileged: false  #特權(quán),最高權(quán)限
          runAsNonRoot: false #禁止以root用戶啟動(dòng)容器 true為禁止
        terminationMessagePath: /dev/termination-log #表示容器的異常終止消息的路徑,默認(rèn)在 /dev/termination-log 下。當(dāng)容器退出時(shí),可以通過容器的狀態(tài)看到退出信息。
        terminationMessagePolicy: File   #默認(rèn)情況容器退出時(shí),退出信息會(huì)從文件中讀取。 可以修改為 FallbackToLogsOnError 從日志中讀取
        volumeMounts:
        - mountPath: /usr/share/zoneinfo/Asia/Shanghai
          name: tz-config
        - mountPath: /etc/localtime
          name: tz-config
        - mountPath: /etc/timezone
          name: timezone
        - mountPath: /mnt
          name: redis-conf
          readOnly: true
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30 #在規(guī)定的terminationGracePeriodSeconds優(yōu)雅時(shí)間內(nèi)完成Pod優(yōu)雅終止動(dòng)作。默認(rèn)是30秒
      tolerations:  #零容忍設(shè)置
      - effect: NoExecute #即使在節(jié)點(diǎn)上存在污點(diǎn),也不會(huì)將Pod從該節(jié)點(diǎn)上刪除
        key: node.kubernetes.io/unreachable
        operator: Exists
        tolerationSeconds: 30
      - effect: NoExecute
        key: node.kubernetes.io/not-ready
        operator: Exists
        tolerationSeconds: 30
      volumes:
      - hostPath:
          path: /usr/share/zoneinfo/Asia/Shanghai
          type: ""
        name: tz-config
      - hostPath:
          path: /etc/timezone
          type: ""
        name: timezone
      - configMap:
          defaultMode: 420
          name: redis-conf
        name: redis-conf
  • 1.創(chuàng)建k8sConfig Maps配置文件kubectl create cm redis-conf --from-file=redis.conf
  • 2.部署redis Deploymentskubectl create -f redis.yaml
  • 3.將資源公開一個(gè)新的服務(wù)service`kubectl expose deploy redis-single-node --port 6379
  • 4.對(duì)外開放6379端口找到service編輯type為NodePort,設(shè)置nodePort: 6379
    微服務(wù)探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka,微服務(wù),k8s,微服務(wù),kubernetes,redis,mongodb,kafka
  • 到此安裝完成之后就可以使用可視化工具(如AnotherRedisDesktopManager)或者代碼進(jìn)行測(cè)試連接。

2 安裝MongoDB

這里使用Helm安裝所以需要先安裝一下Helm,如果已經(jīng)安裝跳過2.1這個(gè)小步驟

2.1 安裝Helm

  • 下載安裝包https://github.com/helm/helm/releases,打開地址后選擇適合自己的版本一般選擇最新版本。本文使用的是ubuntu服務(wù)器下載命令如下
    wget https://get.helm.sh/helm-v3.12.1-linux-amd64.tar.gz,如果遇到卡主那就是需要翻墻
  • 下載完后解壓tar -zxvf helm-v3.12.1-linux-amd64.tar.gz
  • 移動(dòng)到安裝目標(biāo)mv linux-amd64/helm /usr/local/bin/helm
  • 初始化倉(cāng)庫(kù)helm repo add bitnami https://charts.bitnami.com/bitnami,這邊如果要添加找其他倉(cāng)庫(kù)地址可以去Artifact Hub搜索相對(duì)于的倉(cāng)庫(kù)地址。

2.2開始MongoDB安裝

  • 創(chuàng)建pvvim mongodb-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mongodb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /bitnami/mongodb/data

以上內(nèi)容中/bitnami/mongodb/data是主機(jī)真實(shí)路徑,小提示如果沒有權(quán)限需要賦權(quán)限給uid為1001

  • 創(chuàng)建pvcvim mongodb-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mongodb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  volumeName: mongodb-pv
  • 創(chuàng)建配置文件vim mongodb-values.yaml
persistence:
  enabled: true
  existingClaim: "mongodb-pvc"
securityContext:
    privileged: true
    runAsUser: 1001
    runAsGroup: 1001
    fsGroup: 1001
auth:
  rootPassword: "自定義密碼"

創(chuàng)建完以上三個(gè)文件之后按順序執(zhí)行如下:

kubectl apply -f mongodb-pv.yaml

kubectl apply -f mongodb-pvc.yaml

helm install my-mongodb bitnami/mongodb -f mongodb-values.yaml --set volumePermissions.enabled=true

提示–set volumePermissions.enabled=true第③必須加這個(gè)不然pod創(chuàng)建的時(shí)候沒有權(quán)限創(chuàng)建文件夾及文件會(huì)報(bào)錯(cuò)mkdir: cannot create directory ‘/bitnami/mongodb/data’: Permission denied

安裝成功之后如果想讓外網(wǎng)訪問跟上面redis一樣service編輯type為NodePort,設(shè)置nodePort: 27017,端口號(hào)自定義只要防火墻對(duì)外開放就行

卸載使用helm uninstall my-mongodb

  • 用navicat測(cè)試連接能否成功
    微服務(wù)探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka,微服務(wù),k8s,微服務(wù),kubernetes,redis,mongodb,kafka
    也可以用MongoDB Compass,;連接地址格式為:mongodb://root:密碼@ip:端口
    微服務(wù)探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka,微服務(wù),k8s,微服務(wù),kubernetes,redis,mongodb,kafka
  • 修改用戶密碼,如下圖可以使用工具直接執(zhí)行命令
    微服務(wù)探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka,微服務(wù),k8s,微服務(wù),kubernetes,redis,mongodb,kafka

先切換至admin庫(kù)use admin再執(zhí)行修改 db.changeUserPassword("用戶名","密碼")

3 安裝kafka

前置條件參考第2步安裝MongoDB中的創(chuàng)建pv跟pvc命名為kafka-pv和kafka-pvc

3.1 Helm部署kafka

  • 創(chuàng)建配置文件kafka-values.yaml內(nèi)容如下
replicaCount: 1       # kafka 副本數(shù)
#global:
#  storageClass: nfs-client  # kafka 和 zookeeper 使用的存儲(chǔ)

heapOpts: "-Xmx1024m -Xms1024m"  # kafka 啟動(dòng)的 jvm 參數(shù)

persistence:   # kafka 每個(gè)副本的存儲(chǔ)空間
  enabled: true
  existingClaim: "kafka-pvc"

resources:
  limits:
    cpu: 1000m
    memory: 2Gi
  requests:
    cpu: 100m
    memory: 100Mi

zookeeper:
  replicaCount: 1  # zookeeper 的副本數(shù)
  persistence:
    enabled: true
    existingClaim: "kafka-pvc"
  resources:
    limits:
      cpu: 2000m
      memory: 2Gi

externalAccess:
  enabled: true    # 開啟外部訪問
  autoDiscovery:
    enabled: true
  service:
    type: NodePort  # 開啟 nodeport 
    ports:
      external: 9094
    nodePorts:      # nodeport 對(duì)應(yīng)的端口,多少個(gè) kafka 副本對(duì)應(yīng)多少個(gè)端口
      - 30001
#      - 30002
#      - 30003

執(zhí)行部署helm install my-kafka bitnami/kafka -f kafka-values.yaml --set volumePermissions.enabled=true --set rbac.create=true

3.1 安裝簡(jiǎn)潔版的管理界面kafka-console-ui

  • 創(chuàng)建kafka-console-ui-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kafka-console-ui
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kafka-console-ui
  template:
    metadata:
      labels:
        app: kafka-console-ui
    spec:
      containers:
      - name: kafka-console-ui
        resources:
          limits:
            cpu: 1000m
            memory: 1Gi
          requests:
            cpu: 10m
            memory: 10Mi
        image: wdkang/kafka-console-ui:latest
        volumeMounts:
        - mountPath: /etc/localtime
          readOnly: true
          name: time-data
      volumes:
      - name: time-data
        hostPath:
          path: /usr/share/zoneinfo/Asia/Shanghai
  • 創(chuàng)建kafka-console-ui-service.yaml
kind: Service
apiVersion: v1
metadata:
  labels:
    app: kafka-console-ui
  name: kafka-console-ui
  namespace: default
spec:
  ports:
    - port: 7766
      targetPort: 7766
      nodePort: 30088
  selector:
    app: kafka-console-ui
  type: NodePort
  • 執(zhí)行部署命令

kubectl apply -f kafka-console-ui-service.yaml

kubectl apply -f kafka-console-ui-deploy.yaml文章來源地址http://www.zghlxwxcb.cn/news/detail-603882.html

  • 部署完之后訪問地址http://1.xx.1xx.80:30088進(jìn)入界面
    微服務(wù)探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka,微服務(wù),k8s,微服務(wù),kubernetes,redis,mongodb,kafka
  • 進(jìn)入運(yùn)維添加集群
    微服務(wù)探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka,微服務(wù),k8s,微服務(wù),kubernetes,redis,mongodb,kafka
  • 如果是用的云服務(wù)器會(huì)發(fā)現(xiàn)這時(shí)候連接上了但是監(jiān)聽Topic的時(shí)候跑到了內(nèi)網(wǎng)IP,需要修改configmap的配置這里都是建立在之前的k8s上所以直接進(jìn)入k8s后臺(tái)找到并修改如下圖
    微服務(wù)探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka,微服務(wù),k8s,微服務(wù),kubernetes,redis,mongodb,kafka
  • 重啟kubectl rollout restart statefulset my-kafka -n default

到了這里,關(guān)于微服務(wù)探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • K8S---yaml文件詳解

    K8S---yaml文件詳解

    目錄 一、K8S支持的文件格式 1、yaml和json的主要區(qū)別 2、YAML語言格式 二、YAML 1、查看 API 資源版本標(biāo)簽 2、編寫資源配置清單 2.1 編寫 nginx-test.yaml 資源配置清單 2.2 創(chuàng)建資源對(duì)象 2.3 查看創(chuàng)建的pod資源 3、創(chuàng)建service服務(wù)對(duì)外提供訪問并測(cè)試 3.1 編寫nginx-svc-test.yaml文件 3.2 創(chuàng)建資

    2024年02月12日
    瀏覽(87)
  • K8S:Yaml文件詳解

    K8S:Yaml文件詳解

    目錄 一.Yaml文件詳解 1.Yaml文件格式 2.YAML 語法格式 二.Yaml文件編寫及相關(guān)概念 1.查看 api 資源版本標(biāo)簽 2.yaml編寫案例 (2)Deployment類型編寫nginx服務(wù) (3)k8s集群中的port介紹 (5)快速編寫yaml文件 (6)案例:自主式創(chuàng)建service并關(guān)聯(lián)上面的pod (7)Pod yaml文件詳解 (8)deploymen

    2024年02月08日
    瀏覽(91)
  • K8s中yaml文件詳解

    文章目錄 目錄 一、YAML基礎(chǔ) 二、說明 三、使用YAML創(chuàng)建Pod 附上一個(gè)具體的yaml解釋文件: YAML是專門用來寫配置文件的語言,非常簡(jiǎn)潔和強(qiáng)大,使用比json更方便。它實(shí)質(zhì)上是一種通用的數(shù)據(jù)串行化格式。 YAML語法規(guī)則: 1.1 YAML Maps Map顧名思義指的是字典,即一個(gè)Key:Value 的鍵值

    2024年02月15日
    瀏覽(107)
  • K8S之yaml文件詳解

    K8S之yaml文件詳解

    文章目錄 一、概述 二、YAML文件優(yōu)點(diǎn) 三、YAML與 JSON 和 XML 的關(guān)系 四、YAML 文件的結(jié)構(gòu) 五、YAML 在 Kubernetes 中的使用 六、YAML文件模板生成/導(dǎo)出 一、概述? Kubernetes只支持YAML和JSON格式創(chuàng)建資源對(duì)象 JSON格式用于接口之間消息的傳遞,YAML格式用于配置和管理 YAML是專門用來寫配置

    2024年02月02日
    瀏覽(112)
  • K8S - 架構(gòu)、常用K8S命令、yaml資源清單部署、Ingress、故障排查、存儲(chǔ)卷

    K8S - 架構(gòu)、常用K8S命令、yaml資源清單部署、Ingress、故障排查、存儲(chǔ)卷

    K8S官網(wǎng)文檔:https://kubernetes.io/zh/docs/home/ 學(xué)習(xí)東西還是要從官方文檔入手; 用于管理、擴(kuò)展、自動(dòng)部署容器; 其實(shí)就是 對(duì)多個(gè)跨機(jī)器的Docker集群; 服務(wù)發(fā)現(xiàn)和負(fù)載均衡 Kubernetes 可以使用 DNS 名稱或自己的 IP 地址來暴露容器。 如果進(jìn)入容器的流量很大, Kubernetes 可以負(fù)載均

    2024年02月09日
    瀏覽(118)
  • kubernetes(k8s) Yaml 文件詳解

    kubernetes(k8s) Yaml 文件詳解

    YAML格式 :用于配置和管理,YAML是一種簡(jiǎn)潔的非標(biāo)記性語言,內(nèi)容格式人性化,較易讀。 1、查看API 資源版本標(biāo)簽 kubectl api-versions 2、編寫資源配置清單 2.3 查看創(chuàng)建的pod資源 kubectl get pods -o wide 3、創(chuàng)建service服務(wù)對(duì)外提供訪問并測(cè)試 3.1、編寫nginx-svc-test.yaml文件 3.2、創(chuàng)建資源

    2024年02月05日
    瀏覽(30)
  • k8s之YAML文件書寫秘笈

    k8s之YAML文件書寫秘笈

    ? ? ? ? ? ? ?在kubernetes的江湖里,一直流傳YAML的傳說,它是Yet Another Markup Language的英文縮寫,用來配置k8s里的各類資源.。通常,你可以選擇YAML或JSON來完成聲明式的配置文件,這種方式便于復(fù)用和保存,但命令式的方式有一定的局限性,僅有部分kubernetes資源可以使用命令

    2024年01月18日
    瀏覽(20)
  • K8s進(jìn)階之路-安裝部署K8s

    K8s進(jìn)階之路-安裝部署K8s

    參考:(部署過程參考的下面紅色字體文檔鏈接就可以,步驟很詳細(xì),重點(diǎn)部分在下面做了標(biāo)注) ?安裝部署K8S集群文檔: 使用kubeadm方式搭建K8S集群 · GitBook 本機(jī):?master:10.0.0.13?master ? ? ? ? ? ?node1: 10.0.0.11?node1 ? ? ? ? ? ?node2: 10.0.0.12?node2 #systemctl stop firewalldsy

    2024年02月22日
    瀏覽(32)
  • K8S:Yaml文件詳解及編寫示例

    K8S:Yaml文件詳解及編寫示例

    (1)Kubernetes 支持 YAML 和 JSON 格式管理資源對(duì)象 (2)JSON 格式:主要用于 api 接口之間消息的傳遞 (3)YAML 格式:用于配置和管理,YAML 是一種簡(jiǎn)潔的非標(biāo)記性語言,內(nèi)容格式人性化,較易讀 (1)大小寫敏感 (2)使用縮進(jìn)表示層級(jí)關(guān)系 (3)不支持Tab鍵制表符縮進(jìn),只使用

    2024年02月04日
    瀏覽(23)
  • K8S學(xué)習(xí)筆記-01(yaml文件編寫)

    原創(chuàng)文檔編寫不易,未經(jīng)許可請(qǐng)勿轉(zhuǎn)載。文檔中有疑問的可以郵件聯(lián)系我。 郵箱:yinwanit@163.com 記錄k8s中yaml文件編寫相關(guān)內(nèi)容。 k8s官網(wǎng)文檔庫(kù):https://kubernetes.io/docs/home/ kubelet 命令參考:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands k8s中yaml文件結(jié)尾需以.yml或.yaml結(jié)

    2024年02月14日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包