Skip to content

Commit

Permalink
kube-apiserver: fix kubernetes cert domain name problem
Browse files Browse the repository at this point in the history
closed #233
  • Loading branch information
Zhang Jun committed Jun 28, 2018
1 parent 6bc450a commit 719e5f0
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions 06-1.api-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ cat > kubernetes-csr.json <<EOF
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
"kubernetes.default.svc.cluster.local",
"kubernetes.default.svc.${CLUSTER_DNS_DOMAIN}"
],
"key": {
"algo": "rsa",
Expand All @@ -47,8 +46,10 @@ cat > kubernetes-csr.json <<EOF
EOF
```
+ hosts 字段指定授权使用该证书的 **IP 或域名列表**,这里列出了 apiserver 节点 IP、kubernetes 服务 IP 和域名;
+ 域名最后字符不能是 `.`(如不能为 `kubernetes.default.svc.cluster.local.`),否则解析时失败,提示: `x509: cannot parse dnsName "kubernetes.default.svc.cluster.local."`
+ 如果使用非 `cluster.local` 域名,如 `opsnull.com`,则需要修改域名列表中的最后两个域名为:`kubernetes.default.svc.opsnull``kubernetes.default.svc.opsnull.com`
+ kubernetes 服务 IP 是 apiserver 自动创建的,一般是 `--service-cluster-ip-range` 参数指定的网段的**第一个IP**,后续可以通过如下命令获取:

``` bash
$ kubectl get svc kubernetes
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
Expand Down Expand Up @@ -141,7 +142,7 @@ ExecStart=/opt/k8s/bin/kube-apiserver \\
--audit-log-maxage=30 \\
--audit-log-maxbackup=3 \\
--audit-log-maxsize=100 \\
--audit-log-path=/var/lib/audit.log \\
--audit-log-path=/var/log/kube-audit.log \\
--event-ttl=1h \\
--v=2
Restart=on-failure
Expand Down Expand Up @@ -253,3 +254,8 @@ tcp 0 0 172.27.129.105:6443 0.0.0.0:* LISTEN
```
+ 6443: 接收 https 请求的安全端口,对所有请求做认证和授权;
+ 由于关闭了非安全端口,故没有监听 8080;


## 参考

1. 关于证书域名最后字符不能是 `.` 的问题,实际和 Go 的版本有关,1.9 不支持这种类型的证书:https://github.com/kubernetes/ingress-nginx/issues/2188

1 comment on commit 719e5f0

@watermelonbig
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"kubernetes.default.svc.cluster.local",
作为ip和域名列表中的最后一项,末尾不能有这个逗号!

Please sign in to comment.