文章目录
1.背景
参考链接:
- 1. [译]走进Kubernetes集群的大脑:Etcd
- 2. Kubernetes架构图
最近学习K8S架构,参考了一些资料,了解到几个组件都通过
apiserver
对接,etcd
作为apiserver
后端数据库,了解下工作原理。用go
写了简单的客户端读取etcd
内容
图片来源以上两个参考链接
2.环境准备
- 操作系统
ubuntu 22
- k8s环境
minikube v1.26.1
- node节点信息
NAME | STATUS | ROLES | IP | VERSION |
---|---|---|---|---|
minikube | Ready | control-plane,master | 192.168.49.2 | v1.23.8 |
minikube-m02 | Ready | none | 192.168.49.3 | v1.23.8 |
minikube-m03 | Ready | none | 192.168.49.4 | v1.23.8 |
获取etcd根证书,服务器证书和私钥
# 先查看etcd证书路径
kubectl describe pods --namespace kube-system etcd-minikube | grep etcd-certs: -A 3
# etcd-certs:
# Type: HostPath (bare host directory volume)
# Path: /var/lib/minikube/certs/etcd
# HostPathType: DirectoryOrCreate
# 登录进控制节点机器拷贝证书出来
minikube ssh -n minikube
# docker@minikube:
cd /var/lib/minikube/certs/etcd
# 拷贝ca.crt server.crt server.key 到真实机器
scp ca.crt 用户名@本机IP
3. Go访问etcd代码
参考链接1
中使用 etcdctl 访问,这里学习下go操作etcd方法,所以自己码了个代码
上一步证书放到程序目录
package main