手动搭建高可用的kubernetes 集群
https://blog.qikqiak.com/post/manual-install-high-available-kubernetes-cluster/
文档没写 那些步骤在哪个节点上执行啊。
@centosredhat 是指哪些步骤呢?在最上面我声明了节点的,所以可能下面没有说清楚,等会我再检查一遍
感谢大牛的文档,写的很详细。 wget https://dl.k8s.io/v1.8.2/kubernetes-server-linux-amd64.tar.gz tar -xzvf kubernetes.tar.gz 楼主这里解压名是不是写错了
@shibd 嗯,这个地方确实应该是kubernetes-server-linux-amd64.tar.gz~
楼主,在“配置kubectl 命令行工具”时的环境变量设置不对。 export KUBE_APISERVER="https://{{MASTER_URL}}" 应该是 export KUBE_APISERVER="https://${{MASTER_URL}}" 少了个符号0-0。我执行命令 kubectl get cs报错:error: host must be a URL or a host:port pair: "https://{{MASTER_URL}}"
@shibd 嗯,对的,这里是读取环境变量,应该是${MASTER_URL},非常感谢
@cnych 楼主现在有个问题,我把环境变量设置过来之后,重新配置了 .kube/config文件 但是还是报错:The connection to the server k8s-api.virtual.local was refused - did you specify the right host or port? ping k8s-api.virtual.local 能通,组件kube-apiserver,kube-controller-manager,kube-scheduler也都启动正常。 求助求助~求指导0-0
查看系统日志报错连接失败 Get http://k8s-api.virtual.local/api/v1/services?resourceVersion=0: dial tcp 10.142.0.3:80: getsockopt: connection refused。我防火墙都关了,是认证的问题吗?
@shibd 用netstat查看下80/443端口是否开启,这里k8s-api.virtual.local的80对应的是apiserver的8080端口、443对应的是apiserver的6443端口,所以也查下看看8080和6443端口是否开启正常
@cnych 非常感谢!~ netstat查看80和443端口的确没有开启,但是我把防火墙都关了,为什么apiserver不启动端口呢~怎样做才能开启(80/443)端口呢?(0-0恕我菜菜的问)
@shibd 我这里使用80和443的端口是通过haproxy代理转发的,是因为后面我这里有两个kube-apiserver,如果你现在只有一个节点的话可以用apiserver-host:8080或者apiserver-host:6443代替,apiserver启动的端口是8080和6443这两个端口
@cnych 您好,又来讨教您了~我按照您的做法,用haproxy代理了一台master节点,然后观察80和443已经代理,curl url:80和url:8080收到的响应是一样的,通过journalctl -f观察系统日志也没什么报错的。但是在执行 kubegelt get cs时报出:Unable to connect to the server: EOF。 求助哈~~~~0-0
@cnych 您好,又来讨教您了我按照您的做法,用haproxy代理了一台master节点,然后观察80和443已经代理,curl url:80和url:8080收到的响应是一样的,通过journalctl -f观察系统日志也没什么报错的。但是在执行 kubegelt get cs时报出:Unable to connect to the server: EOF。 求助哈0-0
2017-12-18 17:36 GMT+08:00 River [email protected]:
@shibd https://github.com/shibd 我这里使用80和443的端口是通过haproxy代理转发的, 是因为后面我这里有两个kube-apiserver,如果你现在只有一个节点的话可以用apiserver- host:8080或者apiserver-host:6443代替
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/cnych/blog/issues/6#issuecomment-352373181, or mute the thread https://github.com/notifications/unsubscribe-auth/Af3mhFraYHobWzthwotAXbWyt4-296cKks5tBjIHgaJpZM4QbRvM .
@shibd 你可以先把kubectl的config中的apiserver直接改成apiserver的host:6443端口试一试,先别用ha代理,直接联通看是否可以
@shibd 楼主在装kubelet时,service启动文件中,设置的几条路由规则是做什么用的?
@shibd 主要是cAdvisor监听的端口,如果暴露给外网的话不安全,如果你的机器没有外网的话或者对安全要求不高的话可以不加,后面统一进行防火墙的相关配置也可以的
感谢感谢楼主~我现在集群搭建完了,但是遇到个问题,始终找不到解决方法。我是在google云上搭建的,在搭建好的集群上启动了一个nginx,然后设置service为NodePort暴露node节点端口为30904. 然后我从master上curl nodeip:30904始终不通(在node节点上是通的)。排除google防火墙的问题,我把防火墙默认转发所有端口。并且假如我再node节点上把haproxy绑定到32777端口上,是能curl通的。。。 我初学kubernetes,查资料发现可能是kube-proxy没有配置好,但我检查了,这里好像也没有什么坑。我想知道怎么样排查这个问题,怎样做。。。0-0
@shibd 先看看master是否安装了flanneld,然后检查下和其他节点的flanneld网络直接是否能够互通~
@cnych 感谢楼主,解决了~原来是我的node节点的内核没有开启iptables,导致kube-proxy转发失败。 vim /etc/sysctl.conf
net.ipv4.ip_forward=1 net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1
sysctl -p
请问楼主,为什么要开启这个路由转发啊? net.ipv4.ip_forward=1 net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1
楼主,文档在node安装配置那块,安装kubelet用的是kubectl,但是我没有在node上装kubectl,该怎么操作呢?
@qiangshui 那就安装,不安装kubectl没办法和集群进行交互~
楼主,我进行到部署dashboard的时候,创建pod不成功,kubectl get pods -n kube-system | grep dashboard一直是ContainerCreating,Jul 6 02:26:27 node1 kubelet: E0706 02:26:27.551308 12017 pod_workers.go:186] Error syncing pod 8385bd7b-80df-11e8-81e9-005056917385 ("kubernetes-dashboard-66c8c77c66-fmgzj_kube-system(8385bd7b-80df-11e8-81e9-005056917385)"), skipping: timeout expired waiting for volumes to attach or mount for pod "kube-system"/"kubernetes-dashboard-66c8c77c66-fmgzj". list of unmounted volumes=[kubernetes-dashboard-certs]. list of unattached volumes=[kubernetes-dashboard-certs tmp-volume dashboard-token-kjxcb] 请问这个估计是哪方面的问题?
@qiangshui 看上去是token这些文件没有挂载到Pod里面去,正常来说会自动挂载进去的,你把Pod删掉,重建下试看看吧~
能否贴下dashboard-controller.yaml的内容,报错Jul 8 23:50:52 node1 kubelet: E0708 23:50:52.235600 11728 nestedpendingoperations.go:267] Operation for ""kubernetes.io/secret/fa2c6053-832a-11e8-877e-005056917385-kubernetes-dashboard-certs" ("fa2c6053-832a-11e8-877e-005056917385")" failed. No retries permitted until 2018-07-08 23:52:54.235580249 -0400 EDT m=+4510.888261841 (durationBeforeRetry 2m2s). Error: "MountVolume.SetUp failed for volume "kubernetes-dashboard-certs" (UniqueName: "kubernetes.io/secret/fa2c6053-832a-11e8-877e-005056917385-kubernetes-dashboard-certs") pod "kubernetes-dashboard-66c8c77c66-psmns" (UID: "fa2c6053-832a-11e8-877e-005056917385") : secrets "kubernetes-dashboard-certs" not found", 从官网下dashboard-controller.yaml有kubernetes-dashboard-certs这个字段,但是文中好像没配置这部分
@qiangshui 你应该是用的以前的版本,你看看我这篇文章呢,这个是我升级到新版本的方法:https://blog.qikqiak.com/post/update-kubernetes-dashboard-more-secure/,或者看 Dashboard 的 Github 的文档安装也可以
请问我启动haproxy两个节点都会报backend k8s-api has no server available错误是什么原因呢? haproxy日志: Server k8s-api/k8s-api-1 is DOWN, reason: Layer4 connection problem, info: "General socket error (Permission denied) at initial connection step of tcp-check", check duration: 0ms. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue. Aug 25 05:30:34 localhost haproxy[20870]: Server k8s-api/k8s-api-2 is DOWN, reason: Layer4 connection problem, info: "General socket error (Permission denied) at initial connection step of tcp-check", check duration: 0ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
@leego86 日志已经说了k8s-api-1和k8s-api-2都是 DOWN 状态,先在haproxy节点上telnet看看 apiserver 是否可以正常访问,看看 apiserver 是否挂掉了?
端口都在,apiserver也在,tenlet是通的 root@k8sa-02 ~]# telnet 192.168.32.12 6443 Trying 192.168.32.12... Connected to 192.168.32.12. Escape character is '^]'.
配置 frontend k8s-api bind 192.168.32.12:443 mode tcp option tcplog tcp-request inspect-delay 5s tcp-request content accept if { req.ssl_hello_type 1 } default_backend k8s-api
backend k8s-api mode tcp option tcplog option tcp-check balance roundrobin default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100 server k8s-http-api-1 192.168.32.11:6443 check server k8s-http-api-2 192.168.32.12:6443 check
@shibd 添加节点,没成功
[root@node1 system]# kubectl get csr NAME AGE REQUESTOR CONDITION node-csr-ht7dzdBR5vvwjybGaH_FjHxKtUhFhXGEpNG7fWKRrpM 4m kubelet-bootstrap Approved [root@node1 system]# [root@node1 system]# kubectl get nodes No resources found.