网上讲述如何部署k8s集群的文章很多,特别是k8s中文社区里面,每个平台的部署方式都有详细说明。但就是看了中文社区的指导,发现一路是坑,第一个源访问的时候就404 NotFound, 更别说那生涩的翻译和版本匹配问题。
如此一来还不如自己写一个。
1. 开虚机
系统环境CentOS 7.2 . 这方面不再赘述
2. 设置/etc/hosts
简单来说就是把master和minion主机都用域名在hosts文件中记录一下。
3. 集群主机都安装kubernetes和etcd
直接yum install . 安装kubernetes 时会顺带把docker等都安装上。 此文章编写时,阿里云的kubernetes版本为1.5.2.
这里还需要注意:应该在etcdctl中配置flannel,否则flannel无法正常启动。
[root@k8s-master home]# etcdctl set /flannel/network/config '{ "Network": "172.16.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" } }'
4. 配置apiserver
按照中文社区的指导配置(但最终并没有使用该配置,看下去就知道)
修改/etc/kubernetes/apiserver
修改/etc/kubernetes/config
由于这条路不通,具体修改内容就不贴了。
5. master配置启动脚本
#/bin/bash
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
走到这里,按照中文社区的指导,应该就能直接起来了。但其实并不能!!!
收到以下错误:
Sep 29 17:06:15 debug010000002015 kube-apiserver: W0929 17:06:15.881473 21259 handlers.go:50] Authentication is disabled
Sep 29 17:06:15 debug010000002015 kube-apiserver: [restful] 2018/09/29 17:06:15 log.go:30: [restful/swagger] listing is available at https://172.16.7.93:6443/swaggerapi/
Sep 29 17:06:15 debug010000002015 kube-apiserver: [restful] 2018/09/29 17:06:15 log.go:30: [restful/swagger] https://172.16.7.93:6443/swaggerui/ is mapped to folder /swagger-ui/
Sep 29 17:06:15 debug010000002015 kube-apiserver: E0929 17:06:15.984071 21259 reflector.go:199] k8s.io/kubernetes/plugin/pkg/admission/resourcequota/resource_access.go:83: Failed to list *api.ResourceQuota: Get http://127.0.0.1:18080/api/v1/resourcequotas?resourceVersion=0: dial tcp 127.0.0.1:18080: getsockopt: connection refused
Sep 29 17:06:15 debug010000002015 kube-apiserver: E0929 17:06:15.984217 21259 reflector.go:199] pkg/controller/informers/factory.go:89: Failed to list *api.Namespace: Get http://127.0.0.1:18080/api/v1/namespaces?resourceVersion=0: dial tcp 127.0.0.1:18080: getsockopt: connection refused
Sep 29 17:06:15 debug010000002015 kube-apiserver: E0929 17:06:15.987986 21259 reflector.go:199] pkg/controller/informers/factory.go:89: Failed to list *api.LimitRange: Get http://127.0.0.1:18080/api/v1/limitranges?resourceVersion=0: dial tcp 127.0.0.1:18080: getsockopt: connection refused
Sep 29 17:06:16 debug010000002015 kube-apiserver: F0929 17:06:16.058072 21259 genericapiserver.go:189] unable to load server certificate: open /var/run/kubernetes/apiserver.key: permission denied
Sep 29 17:06:16 debug010000002015 systemd: kube-apiserver.service: main process exited, code=exited, status=255/n/a
Sep 29 17:06:16 debug010000002015 systemd: Failed to start Kubernetes API Server.
Sep 29 17:06:16 debug010000002015 systemd: Unit kube-apiserver.service entered failed state.
Sep 29 17:06:16 debug010000002015 systemd: kube-apiserver.service failed.
Sep 29 17:06:16