2024-10-24 myluzh Kubernetes
0x01 关于 etcd 双向认证及数据获取 etcd 通常通过 SSL 双向认证来确保通信的安全性。因此,使用 curl 请求 etcd 的 metrics 数据时,需要提供客户端证书和私钥,否则会出现认证错误。 直接通过 curl -k https://172.30.233.87:2379/metrics 来获取 etcd 的 metrics 数据时,可能会遇到以下错误: curl: (35) error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate 这是因为 etcd 启用了 SSL 双向认证,服务端要求客户端提供有效的证书和私钥进行身份验证。 解决方案: 在 curl 请求中携带正确的客户端证书、私钥以及(可选)CA 根证书。具体步骤如下: curl --cert /etc/kubernetes/ssl/kube-etcd-172-30-233-87.pem \ --key /etc/kubernetes/ssl/kube-etcd-172-30-233-87-key.pem \ --cacer...2023-9-10 myluzh Kubernetes
0x01 Service概述 1.Service存在的意义 *防止Pod失联(服务发现) *定义一组Pod访问策略(负载均衡) 2.Pod跟Service关系 *通过Service来实现负载均衡 *根据label和selector标签建立关联的 0x02 Service三种类型 ClusterIP:集群内部使用 apiVersion: v1 kind: Service metadata: name: my-service spec: type: ClusterIP selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 8080 NodePort:会在集群中的所有主机上打开一个指定的端口。 apiVersion: v1 kind: Service met...2023-6-16 myluzh Kubernetes
0x01 特性 Service 通过 label 关联对应的 Pod Servcie 生命周期不跟 Pod 绑定,不会因为 Pod 重创改变 IP 提供了负载均衡功能,自动转发流量到不同 Pod 可对集群外部提供访问端口 集群内部可通过服务名字访问 0x02 创建Service(默认为ClusterIP类型) 创建一个 Service,通过标签hellohttp跟对应的Pod关联上 service.yaml apiVersion: v1 kind: Service metadata: name: hellohttp spec: selector: app: hellohttp #这里一定要跟pod的标签对应上要不然关联不起来 type: ClusterIP ports: - port: 8080 # 本 Service 的端口 targetPort: 8080 # 容器端口 服务的默认类型是ClusterIP,只能在集群内部访问,我们可以进入到 Pod 里面访问: kubectl exec -it pod-name -- ba...