跳到主要內容

發表文章

目前顯示的是 4月, 2024的文章

Kubernetes 系統中 ETCD 備份還原教學

Kubernetes 系統中 ETCD 備份還原教學 在 Kubernetes 系統中,ETCD 是一個關鍵的組件,負責存儲系統中的所有配置資料。為了確保在災難發生時可以快速恢復系統狀態,定期備份和還原 ETCD 是至關重要的。以下是一個簡單的教學,介紹了如何在 Kubernetes 系統中進行 ETCD 的備份和還原。 備份 ETCD 1. 使用以下指令查找 ETCD 對外的連接端點: bash kubectl describe pods -n kube-system etcd-controlplane | grep advertise-client-urls    獲取到 Endpoint,例如:https://10.1.218.16:2379。 2. 使用以下指令查找憑證位置: bash kubectl describe pods -n kube-system etcd-controlplane | grep pki    確定憑證位置,例如:    - Cert File: /etc/kubernetes/pki/etcd/server.crt    - Key File: /etc/kubernetes/pki/etcd/server.key    - CA Cert File: /etc/kubernetes/pki/etcd/ca.crt 3. 使用以下指令備份 ETCD 資料庫: bash ETCDCTL_API=3 etcdctl \ --endpoints=https://10.1.220.8:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key snapshot save /opt/cluster1.db 還原 ETCD 1. 使用以下指令還原 ETCD 資料庫: bash ETCDCTL_API=3 etcdctl \ --endpoints=https://10.1.220.8:2379 \ --cacert=/etc/etcd/pki/ca.pem \ --cert=/etc/etcd/pki/etcd.pem

深入理解 Docker 網路設置:Bridge 模式原理與實現

深入理解 Docker 網路設置:Bridge 模式原理與實現 在使用 Docker 建立容器並指定網路為 Bridge 模式時,Docker 使用了多項技術來實現容器與Host的網路通信。以下將深入探討這些技術的原理以及如何實現,幫助大家更好地理解 Docker 網路設置。 使用 Veth Pair 實現容器與Host的通信 Docker 在建立容器時使用了 veth pair 技術。這是一種在容器的 Network Namespace 和Host之間建立虛擬網路介面的方法。其中一端連接到容器的 Network Namespace 中,另一端連接到Host的 docker0 介面(虛擬交換機),從而實現容器與 Host 的網路通信。 bash # Docker 在安裝過程中會建立一個 docker0 的網路介面 ip link add docker0 type bridge # 設定作為 Network Namespace 與Host通訊的 Gateway IP ip addr add 172.17.0.1/16 dev docker0 做完以上的動作後,會生成 172.17.0.0/16 的網路環境,接下來 Docker 會執行以下的動作,將容器的網路與 Host 間的網路通道給建立起來: 1. 創建 Veth Pair: bash # Docker 在安裝過程中會建立一個 docker0 的網路介面 ip link add eth0@if? type veth peer name veth????@if? 其中,eth0@if? 是容器內的網路介面名稱,veth????@if? 則是連接到 Host 的虛擬交換機(docker0)的介面名稱。(? 是一串隨機字元) 2. 將網路介面(eth0@if?)加入容器的 Network Namespace 中: bash ip link set eth0@if? netns ${CONTAINER-NAMESPACE} 3. 將另一端的介面(veth????@if?) 加入到 Host 的虛擬交換機(docker0)中: bash ip link set veth????@if? master docker0 4. 在容器的 Network Namespace 中,為 eth0@if? 介面設置 IP 地

How to use a Google Cloud Persistent Disk (PD) as a Persistent Volume (PV) in Kubernetes

  How to use a Google Cloud Persistent Disk (PD) as a Persistent Volume (PV) in Kubernetes 什麼是 Persistent Volume(PV) Persistent Volume(PV)是 Kubernetes 中用來管理儲存資源的抽象化物件。系統管理員可以透過 PV 來管理集群中的實體儲存媒體。 要怎麼使用 Persistent Volume (PV) 要使用 Persistent Volume(PV),首先需要宣告 Persistent Volume Claim(PVC),並透過 PVC 來要求儲存空間。一旦 PVC 被宣告,Kubernetes 就會根據 PVC 中指定的條件尋找適合的 PV 來滿足 Pod 的需求,並將 PV 掛載到 Pod 中。 在 Google Cloud 的公有雲服務裡提供了一種叫做 Cloud Persistent Disk 的服務,它是一種持久性的存儲解決方案,可供 Kubernetes 中的應用程式使用。若想要在 Kubernetes 中使用 Cloud Persistent Disk 作為 Persistent Volume(PV),可參考以下作法: 方法一 Static Provisioning: 在 GCP 上建立 Cloud Persistent Disk(PD): bash gcloud compute disks create my-disk --size=10GB --zone=us-central1-a 建立 PersistentVolume (PV) YAML: yaml apiVersion: v1 kind: PersistentVolume metadata: name: my-pv spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain gcePersistentDisk: pdName: my-disk fsType: ext4 建立 PersistentVolumeClaim (PVC) YAML: yaml apiVersi