minor fix and docs update

pull/1076/head
gjmzj 2021-09-24 18:08:36 +08:00
parent e33de18ae3
commit 27ba087b8a
3 changed files with 32 additions and 8 deletions

View File

@ -1,6 +1,8 @@
## 部署集群 DNS
# 集群 DNS
DNS 是 k8s 集群首先需要部署的,集群中的其他 pods 使用它提供域名解析服务;主要可以解析 `集群服务名 SVC``Pod hostname`;目前 k8s v1.9+ 版本可以有两个选择:`kube-dns` 和 `coredns`(推荐),可以选择其中一个部署安装。
DNS 是 k8s 集群首要部署的组件,它为集群中的其他 pods 提供域名解析服务;主要可以解析 `集群服务名 SVC``Pod hostname`;目前建议部署 `coredns`
NodeLocal DNSCache在集群的上运行一个dnsCache daemonset来提高clusterDNS性能和可靠性。在K8S集群上的一些测试表明相比于纯coredns方案nodelocaldns + coredns方案能够大幅降低DNS查询timeout的频次提升服务稳定性。参考官方文档https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/
### 部署 dns
@ -8,9 +10,19 @@ DNS 是 k8s 集群首先需要部署的,集群中的其他 pods 使用它提
+ 安装
目前 kubeasz 已经自动集成安装 dns 组件,配置模板位于`roles/cluster-addon/templates/`目录
目前 kubeasz 已经自动集成安装 coredns 和 nodelocaldns 组件,配置模板位于`roles/cluster-addon/templates/`目录
+ 集群 pod默认继承 node的dns 解析,修改 kubelet服务启动参数 --resolv-conf="",可以更改这个特性,详见 kubelet 启动参数
``` bash
# 默认已经集成安装假设集群名为xxxx
ezctl setup xxxx all
# 如果需要分步安装
ezctl setup xxxx 07
# 如果需要手动安装
kubectl apply -f /etc/kubeasz/clusters/xxxx/yml/coredns.yaml
kubectl apply -f /etc/kubeasz/clusters/xxxx/yml/nodelocaldns.yaml
```
### 验证 dns服务
@ -32,10 +44,12 @@ nginx ClusterIP 10.68.33.167 <none> 80/TCP 1m
``` bash
kubectl run test --rm -it --image=alpine /bin/sh
If you don't see a command prompt, try pressing enter.
/ # cat /etc/resolv.conf
nameserver 10.68.0.2
search default.svc.cluster.local. svc.cluster.local. cluster.local.
options ndots:5
# 测试集群内部服务解析
/ # nslookup nginx.default.svc.cluster.local
Server: 10.68.0.2
@ -43,12 +57,14 @@ Address 1: 10.68.0.2 kube-dns.kube-system.svc.cluster.local
Name: nginx
Address 1: 10.68.33.167 nginx.default.svc.cluster.local
/ # nslookup kubernetes.default.svc.cluster.local
Server: 10.68.0.2
Address 1: 10.68.0.2 kube-dns.kube-system.svc.cluster.local
Name: kubernetes
Address 1: 10.68.0.1 kubernetes.default.svc.cluster.local
# 测试外部域名的解析默认集成node的dns解析
/ # nslookup www.baidu.com
Server: 10.68.0.2
@ -60,7 +76,7 @@ Address 2: 180.97.33.107
/ #
```
- Note1: 如果你使用`calico`网络组件,通过命令`ansible-playbook 90.setup.yml`安装完集群后直接安装dns组件可能会出现如下BUG分析是因为calico分配pod地址时候会从网段的第一个地址网络地址开始详见提交的 [ISSUE #1710](https://github.com/projectcalico/calico/issues/1710)临时解决办法为手动删除POD重新创建后获取后面的IP地址
- Note1: 如果你使用`calico`网络组件安装完集群后直接安装dns组件可能会出现如下BUG分析是因为calico分配pod地址时候会从网段的第一个地址网络地址开始详见提交的 [ISSUE #1710](https://github.com/projectcalico/calico/issues/1710)临时解决办法为手动删除POD重新创建后获取后面的IP地址
```
# BUG出现现象

View File

@ -18,7 +18,15 @@ kubeasz 用户可以确认集群各项功能符合预期既符合k8s设计标
- calico: v3.19.2
- coredns: 1.8.4
- pause: 3.5
- dashboard: v2.3.1
- metrics-server: v0.5.0
### 其他
- fix:增加/删除节点时ansible hosts文件更新错误
- 更新kuboard 文档 #1014 #1023
- 更新判断服务状态直接使用systemctl is-active #1019
- 修复etcd dir bug #1036
- 更新traefik为Daemonset部署,增加健康检测功能以及Node节点亲和性调度 #1028
- 更新dashboard 部署文件和文档
- 更新metrics-server 部署文件和文档
- 修复coredns 1.8.4 rbac settings

4
ezdown
View File

@ -299,8 +299,8 @@ function get_offline_image() {
docker save -o "$imageDir/metrics-scraper_$dashboardMetricsScraperVer.tar" "kubernetesui/metrics-scraper:$dashboardMetricsScraperVer"
fi
if [[ ! -f "$imageDir/metrics-server_$metricsVer.tar" ]];then
docker pull "mirrorgooglecontainers/metrics-server-amd64:$metricsVer" && \
docker save -o "$imageDir/metrics-server_$metricsVer.tar" "mirrorgooglecontainers/metrics-server-amd64:$metricsVer"
docker pull "easzlab/metrics-server:$metricsVer" && \
docker save -o "$imageDir/metrics-server_$metricsVer.tar" "easzlab/metrics-server:$metricsVer"
fi
if [[ ! -f "$imageDir/pause_$pauseVer.tar" ]];then
docker pull "easzlab/pause-amd64:$pauseVer" && \