系列文章:
容器 & 服务:开篇,压力与资源
容器 & 服务:一个 Java 应用的 Docker 构建实战
容器 & 服务:Docker 应用的 Jenkins 构建
容器 & 服务:Docker 应用的 Jenkins 构建 (二)
容器 & 服务:K8s 与 Docker 应用集群 (一)
容器 & 服务:K8s 与 Docker 应用集群 (二)
容器 & 服务:Kubernetes 构件及 Deployment 操作
容器 & 服务: ClickHouse 与 k8s 架构
容器 & 服务: 扩容
容器 & 服务:metrics-server 探索
容器 & 服务:Helm Charts(一)
容器 & 服务:Helm Charts(二)安装与使用
一 摘要
上一篇文章,在 Kubernetes 和 Helm Charts 安装完成后,还有一个问题暂时没有解决,明天继续尝试。今天先整理些本地 Kubernetes 集群的环境信息,作为后续解决问题的基础。
Error: Kubernetes cluster unreachable: Get "https://kubernetes.docker.internal:6443/version?timeout=32s": x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")
二 Kubernetes 集群信息
2.1 Kubernetes 的配置文件
kubectl 默认会从 $HOME/.kube 目录下查找文件名为 config
的文件,也能通过设置环境变量 KUBECONFIG
或者通过设置去指定其它 kubeconfig 文件。kube config 就是为访问集群所作的配置。以我本地的环境为例,配置文件在:~/.kube/config,完整信息如下:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeE1UQXdNekV5TkRFek9Gb1hEVE14TVRBd01URXlOREV6T0Zvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTC94Ck1Ga2ZaT1Z1RkwxU29xTFUxN1pQSjJGN0hEa2RiejJ5cG9qVHRhR1QyVXRQTTd4TC93RGNyZ1NJMTVVWjhmUjcKdzZpMXkyTmFTRzBvR1BmZlEyYzltOXB4ZzcxZ3o5SkpMdWJrVVZaczIyY2IwWUlkakhPWW41SnFpUndXVmk5QgpuQk15MjQ0YnM0eVF6dzdKSmJON05LS1lzdHVmWExveDh3UVdiS0hBNDVFbTR6Rmtvc0dMWjhscndaakZ2TzdmCjNSUnBwV0xUQWtCQUtianRJaW41WHMwMEhtdHE0azVRbkFvRG02VHpxNlVtaG91VkRaaC9TSkdiK3d1dEswcTkKT1ZJYkpIbU9MZXBjY1FTUW5yaVVZc00rcHFKL05TVjczemNZWUY3d1U1ODY5OVBFcWFjazBUOFhHMStzeWdNTQo0ZjBEYmZ6NUJaZW10YkV0b0hzQ0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZCTndRaHR5bVhCcGs1aHRIQ2FZSGw1aGtFRWJNQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFCeVZuaXNQdG0ycllTSUNXWllVaGF1YzNrQm43RXlhNkFiRlZYbkY2TXp3a3BhM252Qgp1T1dFWGpxSmtXM0dBb1NDMzNZdURncFQxVklIOHI1QjdXSWY4QnRiRDQzcTkvYWR2VmhFYzlmNFBJdE5aZGJxCm11L0tBZ0lwNHNWeEVBZjhZRVh6dVlxTmVRU3NRQ05FQ2ZUUWpCYVV5UWhhUFI2SEV4L1ZtUWVXOStjb0lub3UKcnRpUkFhTUVvU243QUNaYm5BT1pnUDd4cFliNXZBWTd3RitpZlJJaGthNmk3UVVtdUc0YVJHZ0g3dFhuM1I4Vgo5UCtRdW5CV09sNFVPeE1Eb0dhamdIdCtKMktpR1YvTDczRUVEbG94V2JaOE02YzQ3VnFySTRabUVGZjNqQVJVCkw2OWhHOUtMOGh0L1pWZmd3ODhWeURCZnhtK0wwaTRTeE5UTAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
server: https://kubernetes.docker.internal:6443
name: docker-desktop
contexts:
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-desktop
current-context: docker-desktop
kind: Config
preferences: {}
users:
- name: docker-desktop
user:
复制代码
2.2 配置文件解析
这里,我们借用Kubernetes kubeconfig配置文件详细解读这篇文章中的描述:
kube config 文件可以氛围上图中的四个部分,即集群、上下文、当前上下文 和 客户端认证信息四个部分。
2.3 api server
2.3.1 域名
集群中 api server 配置的地址: https://kubernetes.docker.internal:6443,kubernetes.docker.internal 是一个内网域名,我们通过 ping 这个域名,得到的会是本机地址,127.0.0.1,端口 6443。
2.3.2 端口
其实这里面包含两个端口,HTTP 协议走的是 8080 端口,HTTPS 走的是 6443 端口。根据官方提供的 Kubernetes 文档,解释如下:
By default the Kubernetes APIserver serves HTTP on 2 ports:
1.localhost Port(insecure port)
2.secure port
也就是说,8080 是本地端口,而 6443 就是 HTTPS 协议的安全端口。
localhost Port:
secure port:
评论