您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
60、 Helm 及其它功能性组件 - Dashboard](dial tcp 10.96.0.1443 io timeout问题解决-master方案)
发布时间:2023-01-30 11:16:22编辑:雪饮阅读()
部署到master
Kubernetes-dashboard部署过程中dashboard不间断的处于CrashLoopBackOff、error、running状态,根据logs里面的日志关键:
dial tcp 10.96.0.1:443: i/o timeout
也没有排查出具体原因,根据某些资料感觉比较合理应是将dashboard部署在master节点上(这种问题应是通信问题,如果部署在master节点上除了合理外,由于操作一般都是在master上操作,相当于是localhost了,应该没有通信问题的)
已经执行了dashboard的安装后,则可以编辑其deployment
kubectl edit deployment kubernetes-dashboard -n kube-system
在路径
spec=>template=>spec
上面配置master节点指定调度如:
nodeName: k8s-master01
修改svc类型
编辑其svc类型为NodePort,便于在节点端口上直接访问,路径为spec下
kubectl edit svc kubernetes-dashboard -n kube-system
配置为
type: NodePort
查看访问端口
[root@k8s-master01 kubernetes-dashboard]# kubectl get svc -n kube-system -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 33d k8s-app=kube-dns
kubernetes-dashboard NodePort 10.104.242.38 <none> 443:30332/TCP 26m app=kubernetes-dashboard,release=kubernetes-dashboard
tiller-deploy ClusterIP 10.106.208.128 <none> 44134/TCP 13d app=helm,name=tiller
dashboard使用
在deployment分配到master节点后一般最后是手动删除下deployment产生的pod迫使重建后运行稳定后则可以访问如
有些情况是访问进入这个界面不允许进一步操作,没有高级选项,可能和chrome版本或者chrome浏览器某些配置相关。我这里的版本如
进入高级选项继续访问
进入仪表板需要有两种方式可选,默认kubeconfig方式选中,但这里我们选择令牌的方式
令牌方式需要使用kubernetes集群令牌token
查看kubernetes集群令牌token名及token值
[root@k8s-master01 kubernetes-dashboard]# kubectl -n kube-system get secret | grep kubernetes-dashboard-token
kubernetes-dashboard-token-tcrd6 kubernetes.io/service-account-token 3 33m
[root@k8s-master01 kubernetes-dashboard]# kubectl describe secret kubernetes-dashboard-token-tcrd6 -n kube-system
Name: kubernetes-dashboard-token-tcrd6
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: kubernetes-dashboard
kubernetes.io/service-account.uid: 58e13404-036f-4355-a382-641f273dd142
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybm V0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi10Y3JkNiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ld GVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjU4ZTEzNDA0LTAzNmYtNDM1NS1hMzgyLTY0MWYyNzNkZDE0MiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3Vu dDprdWJlLXN5c3RlbTprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.fMPmlxg7PP2947Dn--zPfH8LBkvJ7LAekIgdD0y6FqB4_lYK3eJbgmc0Qbr2RcAHz1kblIux6TPUWVd-_pS9uSIcbXXx00295HfkCJ3LVQIN--ltlO58Q1WcV41nKK 4LcjRBR-wuHBVtJeh5EWckRcAghyLEYqFUtfZo4xcHNunzk9yUcA7FyibIbN9v7Kej8UiweK11BcKN-eHYOACfBSqnHZoLfNRT8cjOYGhRSnKQATnNj6Ev5z9-gHTHQNCIrzW9w34RT1QE1qXyHUe2mMP5ZWzdl14TjPmvuOHq1ze82 uodcibL7lohhuvMw7_QIBlGw0A88KuZmrVPBWIzCA
选择令牌方式并输入集群令牌
进入仪表板默认的概况页面有许多警告,暂时先忽略
部署应用
在右上角“创建”进入页面后选择“创建应用”选项卡
应用名称这个应该无所谓了
镜像我这里是选择wangyanglinux/myapp:v1
服务这里选择的是一个内部,并且端口及目标端口都为80
此时“部署”按钮是灰色的。无法部署
由于本地我节约成本,只开了一个master和节点1,可能是由于副本健康性检查导致,所以查看节点这里也有警告
开启了第二个节点后,同样的问题并没有消除,查询资料是因为:
这是匿名用户没有权限,创建匿名用户授权
kubectl create clusterrolebinding test:anonymous --clusterrole=cluster-admin --user=system:anonymous
说不定,之前在非master节点上面无法稳定runing也是这个原因。
然后节点列表ok了,没有警告了
之前的概况界面ok了,也没有警告信息了
部署按钮也可以了,是非禁用状态了
点击部署后稍待片刻
这里状态好像不会自动刷新,我是手动刷新浏览器,看到了部署完成的。(可能还需要多等待片刻才能自动刷新部署状态吧)
最后就是我怀疑老师当时部署在非master节点为什么可以,其实有可能是错觉,因为正好根据存活策略,某个节点不行了,尝试另外一个节点,中间确实有在节点1和节点2之间跳的情况(或可印证这点猜想),由于某些原因,比如老师操作过程中没有看到,当老师通过浏览器进行访问时候正好已经是在master节点了(该猜想需要知道老师的master节点的污点策略才能肯定)
关键字词:helm,dashboard,dial tcp 10.96.0.1443 io timeout