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

k8s中部署etcd集群

這篇具有很好參考價(jià)值的文章主要介紹了k8s中部署etcd集群。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

? ? ? ? Etcd是一個(gè)高可用的、開源的、分布式的Key/value存儲(chǔ)系統(tǒng)提供共享配置、服務(wù)的注冊(cè)和發(fā)現(xiàn)、數(shù)據(jù)TTL失效、數(shù)據(jù)改變監(jiān)視、多值、目錄監(jiān)聽、分布式原子鎖操作等功能。通常,k8s使用etcd進(jìn)行數(shù)據(jù)存儲(chǔ),本文將部署etcd集群用做應(yīng)用的存儲(chǔ)。

一、前提

? ? ? ? 部署好k8s,最好有3個(gè)及以上worker節(jié)點(diǎn),部署好StorageClass可以動(dòng)態(tài)創(chuàng)建PVC。本文k8s版本v1.24.8,StorageClass使用nfs-client,使用命名空間gv-public,以部署apisix為例,說(shuō)明etcd集群部署的過(guò)程。

二、yaml文件

? ? ? ? 以下yaml文件是使用命名空間:gv-public(已創(chuàng)建),sc:nfs-client為例,部署根據(jù)實(shí)際情況修改。

1)svc.yaml

????????etcd集群用到兩個(gè)svc,apisix-etcd-headless和apisix-etcd。

apiVersion: v1
kind: Service
metadata:
  name: apisix-etcd-headless
  namespace: gv-public
  labels:
    app.kubernetes.io/instance: apisix-etcd
    app.kubernetes.io/name: apisix-etcd
spec:
  ports:
  - name: client
    port: 2379
    protocol: TCP
    targetPort: 2379
  - name: peer
    port: 2380
    protocol: TCP
    targetPort: 2380
  clusterIP: None
  selector:
    app.kubernetes.io/instance: apisix-etcd
    app.kubernetes.io/name: apisix-etcd
  publishNotReadyAddresses: true
--- 
apiVersion: v1
kind: Service
metadata:
  name: apisix-etcd
  namespace: gv-public
  labels:
    app.kubernetes.io/instance: apisix-etcd
    app.kubernetes.io/name: apisix-etcd
spec:
  ports:
  - name: client
    port: 2379
    protocol: TCP
    targetPort: 2379
  - name: peer
    port: 2380
    protocol: TCP
    targetPort: 2380
  selector:
    app.kubernetes.io/instance: apisix-etcd
    app.kubernetes.io/name: apisix-etcd

2)etcd.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: apisix-etcd
  namespace: gv-public
  labels:
    app.kubernetes.io/instance: apisix-etcd
    app.kubernetes.io/name: apisix-etcd
spec:
  podManagementPolicy: Parallel
  replicas: 3
  serviceName: apisix-etcd-headless
  selector:
    matchLabels:
      app.kubernetes.io/instance: apisix-etcd
      app.kubernetes.io/name: apisix-etcd
  template:
    metadata:
      labels:
        app.kubernetes.io/instance: apisix-etcd
        app.kubernetes.io/name: apisix-etcd
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchLabels:
                  app.kubernetes.io/instance: apisix-etcd
                  app.kubernetes.io/name: apisix-etcd
              topologyKey: kubernetes.io/hostname
            weight: 1
      containers:
      - name: apisix-etcd-app
        image: bitnami/etcd:3.4.24
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 2379
          name: client
          protocol: TCP
        - containerPort: 2380
          name: peer
          protocol: TCP
        env:
        - name: BITNAMI_DEBUG
          value: 'false'
        - name: MY_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: MY_STS_NAME
          value: apisix-etcd
        - name: ETCDCTL_API
          value: '3'
        - name: ETCD_ON_K8S
          value: 'yes'
        - name: ETCD_START_FROM_SNAPSHOT
          value: 'no'
        - name: ETCD_DISASTER_RECOVERY
          value: 'no'
        - name: ETCD_NAME
          value: $(MY_POD_NAME)
        - name: ETCD_DATA_DIR
          value: /bitnami/etcd/data
        - name: ETCD_LOG_LEVEL
          value: info
        - name: ALLOW_NONE_AUTHENTICATION
          value: 'yes'
        - name: ETCD_ADVERTISE_CLIENT_URLS
          value: http://$(MY_POD_NAME).apisix-etcd-headless.gv-public.svc.cluster.local:2379
        - name: ETCD_LISTEN_CLIENT_URLS
          value: http://0.0.0.0:2379
        - name: ETCD_INITIAL_ADVERTISE_PEER_URLS
          value: http://$(MY_POD_NAME).apisix-etcd-headless.gv-public.svc.cluster.local:2380
        - name: ETCD_LISTEN_PEER_URLS
          value: http://0.0.0.0:2380
        - name: ETCD_INITIAL_CLUSTER_TOKEN
          value: apisix-etcd-cluster-k8s
        - name: ETCD_INITIAL_CLUSTER_STATE
          value: new
        - name: ETCD_INITIAL_CLUSTER
          value: apisix-etcd-0=http://apisix-etcd-0.apisix-etcd-headless.gv-public.svc.cluster.local:2380,apisix-etcd-1=http://apisix-etcd-1.apisix-etcd-headless.gv-public.svc.cluster.local:2380,apisix-etcd-2=http://apisix-etcd-2.apisix-etcd-headless.gv-public.svc.cluster.local:2380
        - name: ETCD_CLUSTER_DOMAIN
          value: apisix-etcd-headless.gv-public.svc.cluster.local
        volumeMounts:
        - name: data
          mountPath: /bitnami/etcd
        lifecycle:
          preStop:
            exec:
              command:
              - /opt/bitnami/scripts/etcd/prestop.sh
        livenessProbe:
          exec:
            command:
            - /opt/bitnami/scripts/etcd/healthcheck.sh
          initialDelaySeconds: 60
          timeoutSeconds: 5
          periodSeconds: 30
          successThreshold: 1
          failureThreshold: 5
        readinessProbe:
          exec:
            command:
            - /opt/bitnami/scripts/etcd/healthcheck.sh
          initialDelaySeconds: 60
          timeoutSeconds: 5
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 5
      securityContext:
        fsGroup: 1001
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: 
      - ReadWriteOnce
      storageClassName: nfs-client
      resources:
        requests:
          storage: 1Gi

三、執(zhí)行yaml

分別執(zhí)行如下命令,創(chuàng)建etcd集群:

#kubectl create -f svc.yaml

[root@k8s-master apisix]# kubectl get svc -n gv-public | grep etcd
apisix-etcd            ClusterIP   10.43.141.181   <none>        2379/TCP,2380/TCP                     58m
apisix-etcd-headless   ClusterIP   None            <none>        2379/TCP,2380/TCP                     58m

#kubectl create -f etcd.yaml

[root@k8s-master apisix]# kubectl get pod -n gv-public | grep etcd
apisix-etcd-0                       1/1     Running   0             59m
apisix-etcd-1                       1/1     Running   0             59m
apisix-etcd-2                       1/1     Running   0             59m

進(jìn)入etcd集群的一個(gè)pod容器:

#kubectl exec -it apisix-etcd-0 -n gv-public -- /bin/bash

查看集群信息:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-481914.html

I have no name!@apisix-etcd-0:/opt/bitnami/etcd$ etcdctl endpoint status --cluster -w table
+----------------------------------------------------------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|                                  ENDPOINT                                  |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+----------------------------------------------------------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| http://apisix-etcd-2.apisix-etcd-headless.gv-public.svc.cluster.local:2379 | a13daea6a7c5a0ed |  3.4.24 |   49 kB |     false |      false |         5 |         50 |                 50 |        |
| http://apisix-etcd-0.apisix-etcd-headless.gv-public.svc.cluster.local:2379 | c3f10b3f6f66b949 |  3.4.24 |   49 kB |     false |      false |         5 |         50 |                 50 |        |
| http://apisix-etcd-1.apisix-etcd-headless.gv-public.svc.cluster.local:2379 | c6a5a0cbfafa2786 |  3.4.24 |   49 kB |      true |      false |         5 |         50 |                 50 |        |
+----------------------------------------------------------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+

到了這里,關(guān)于k8s中部署etcd集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(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外接etcd集群服務(wù)異常,使用snapshot恢復(fù)etcd集群

    k8s外接etcd集群服務(wù)異常,使用snapshot恢復(fù)etcd集群

    master節(jié)點(diǎn) 主機(jī) IP 版本 master01 192.168.66.50 k8s-1.23.17 master02 192.168.66.55 k8s-1.23.17 master03 192.168.66.56 k8s-1.23.17 etcd集群節(jié)點(diǎn) 主機(jī) IP 版本 etcd01 192.168.66.58 3.5.6 etcd02 192.168.66.59 3.5.6 etcd03 192.168.66.57 3.5.6 生產(chǎn)環(huán)境中我們?yōu)榱吮苊獬霈F(xiàn)誤操作或者是服務(wù)器硬件出見異常導(dǎo)致宕機(jī),我們的虛擬

    2024年01月17日
    瀏覽(21)
  • 使用kubeadm快速部署一個(gè)K8s集群

    使用kubeadm快速部署一個(gè)K8s集群

    kubeadm是官方社區(qū)推出的一個(gè)用于快速部署kubernetes集群的工具。 這個(gè)工具能通過(guò)兩條指令完成一個(gè)kubernetes集群的部署: 在開始之前,部署Kubernetes集群機(jī)器需要滿足以下幾個(gè)條件: 一臺(tái)或多臺(tái)機(jī)器,操作系統(tǒng) CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2個(gè)CPU或更多CPU,硬盤30GB或更

    2024年02月09日
    瀏覽(33)
  • 使用kubeadm方式快速部署一個(gè)K8S集群

    使用kubeadm方式快速部署一個(gè)K8S集群

    目錄 一、環(huán)境準(zhǔn)備 二、環(huán)境初始化? 三、在所有主機(jī)上安裝相關(guān)軟件 1、安裝docker 2、配置k8s的yum源 3、安裝kubelet、kubeadm、kubectl 四、部署Kubernetes Master 五、加入Kubernets Node 六、部署CNI網(wǎng)絡(luò)插件 七、測(cè)試k8s集群 我的是CentOS7系統(tǒng),然后準(zhǔn)備三臺(tái)虛擬主機(jī) 一臺(tái)master,和兩臺(tái)no

    2024年02月11日
    瀏覽(23)
  • k8s集群中etcd的備份與恢復(fù)

    創(chuàng)建備份目錄mkdir /var/lib/etcd_backup 從etcd中的一個(gè)正常節(jié)點(diǎn)上備份etcd數(shù)據(jù) 停止所節(jié)點(diǎn)的kube-apiserver和etcd 備份原始etcd的路徑中的文件 所有節(jié)點(diǎn)恢復(fù)etcd數(shù)據(jù)庫(kù) master01執(zhí)行{etcd01節(jié)點(diǎn)} work01執(zhí)行{etcd02節(jié)點(diǎn)} work02執(zhí)行{etcd03節(jié)點(diǎn)} 為目錄賦予權(quán)限 每個(gè)節(jié)點(diǎn)啟動(dòng)etcd 查看狀態(tài) 啟動(dòng)kubeapi

    2024年02月11日
    瀏覽(26)
  • k8s-1.22.3集群etcd備份與恢復(fù)

    kubeadm-1.22.3-0.x86_64 kubelet-1.22.3-0.x86_64 kubectl-1.22.3-0.x86_64 kubernetes-cni-0.8.7-0.x86_64 主機(jī)名 IP VIP k8s-master01 192.168.10.61 192.168.10.70 k8s-master02 192.168.10.62 k8s-master03 192.168.10.63 k8s-node01 192.168.10.64 k8s-node02 192.168.10.65 注:etcd最新的API版本是v3,與v2相比,v3更高效更清晰。k8s默認(rèn)使用的etcd

    2024年02月13日
    瀏覽(28)
  • Kubernetes技術(shù)--使用kubeadm快速部署一個(gè)K8s集群

    Kubernetes技術(shù)--使用kubeadm快速部署一個(gè)K8s集群

    這里我們配置一個(gè) 單master集群 。( 一個(gè)Master節(jié)點(diǎn),多個(gè)Node節(jié)點(diǎn) ) 1.硬件環(huán)境準(zhǔn)備 一臺(tái)或多臺(tái)機(jī)器,操作系統(tǒng) CentOS7.x-86_x64 。這里我們使用安裝了CentOS7的三臺(tái)虛擬機(jī) 硬件配置 : 2GB或更多RAM , 2個(gè)CPU或更多CPU , 硬盤30GB或更多 2.主機(jī)名稱和IP地址規(guī)劃 3. 初始化準(zhǔn)備工作 (1).關(guān)

    2024年02月10日
    瀏覽(121)
  • 二進(jìn)制搭建k8s集群 master和etcd

    etcd作為服務(wù)發(fā)現(xiàn)系統(tǒng),有以下的特點(diǎn): 簡(jiǎn)單:安裝配置簡(jiǎn)單,而且提供了HTTP API進(jìn)行交互,使用也很簡(jiǎn)單。 安全:支持SSL證書驗(yàn)證。 快速:?jiǎn)螌?shí)例支持每秒2k+讀操作。 可靠:采用raft算法,實(shí)現(xiàn)分布式系統(tǒng)數(shù)據(jù)的可用性和一致性。 etcd目前默認(rèn)使用2379端口提供HTTP API服務(wù),

    2024年02月12日
    瀏覽(20)
  • k8s mysql集群 & 分布式鎖 & apiserver & etcd 的關(guān)系

    在 Kubernetes (k8s) 中,MySQL 集群可以使用分布式鎖來(lái)確保在多個(gè)實(shí)例之間對(duì)共享資源的互斥訪問。這是通過(guò)結(jié)合 Kubernetes API Server 和 etcd 來(lái)實(shí)現(xiàn)的。 Kubernetes API Server 是 k8s 集群中的核心組件之一,它充當(dāng)了集群的控制平面,提供了對(duì)集群資源的管理和操作接口。API Server 是一個(gè)

    2024年02月07日
    瀏覽(50)
  • K8S集群etcd 某個(gè)節(jié)點(diǎn)數(shù)據(jù)不一致如何修復(fù) —— 筑夢(mèng)之路

    ? 二進(jìn)制方式安裝的k8s集群,etcd集群有3個(gè)節(jié)點(diǎn),某天有一臺(tái)機(jī)器hang住了,無(wú)法遠(yuǎn)程ssh登陸,于是被管理員直接重啟了,重啟后發(fā)現(xiàn)k8s集群刪除一個(gè)deployment應(yīng)用,多次刷新一會(huì)有,一會(huì)沒有,于是在3個(gè)節(jié)點(diǎn)上執(zhí)行etcd命令去查詢?cè)摂?shù)據(jù),發(fā)現(xiàn)被重啟的節(jié)點(diǎn)上仍存在刪除的該應(yīng)

    2024年02月05日
    瀏覽(30)
  • etcd在高磁盤IO的情況下會(huì)導(dǎo)致K8S集群不可用的解決思路

    etcd是Kubernetes中用于存儲(chǔ)集群狀態(tài)信息的關(guān)鍵組件。高磁盤IO可能導(dǎo)致etcd性能下降,從而影響整個(gè)Kubernetes集群的穩(wěn)定性。解決這個(gè)問題可以從多個(gè)方面入手: 優(yōu)化etcd配置 :檢查etcd的配置參數(shù),確保其與您的硬件配置和集群規(guī)模相適應(yīng)??梢哉{(diào)整etcd的并發(fā)限制、緩存大小等

    2024年02月15日
    瀏覽(34)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包