K8S dashboard搭建部署,以及拒绝访问,ImagePullBackOff,ErrImagePull,CrashLoopBackOff问题解决
K8S dashboard搭建部署,以及拒绝访问,ImagePullBackOff,ErrImagePull,CrashLoopBackOff问题解决dashboard部署官网有详细步骤:https://github.com/kubernetes/dashboard#kubernetes-dashboard1. 执行一下代码安装kubectl apply -f https://raw.github
·
K8S dashboard搭建部署,以及拒绝访问,ImagePullBackOff,ErrImagePull,CrashLoopBackOff问题解决
dashboard部署
官网有详细步骤:https://github.com/kubernetes/dashboard#kubernetes-dashboard
1. 执行一下代码安装
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
2. 配置外网访问,官网提供代理proxy、port-forward、NodePort三种方法。这里使用NodePort方式。
kubectl -n kubernetes-dashboard edit service kubernetes-dashboard #编辑配置文件
#找到里面的type: ClusterIP 改成 type: NodePort
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
...
name: kubernetes-dashboard
namespace: kubernetes-dashboard
resourceVersion: "343478"
selfLink: /api/v1/namespaces/kubernetes-dashboard/services/kubernetes-dashboard
uid: 8e48f478-993d-11e7-87e0-901b0e532516
spec:
clusterIP: 10.100.124.90
externalTrafficPolicy: Cluster
ports:
- port: 443
protocol: TCP
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
4. 查看暴露的端口
kubectl -n kubernetes-dashboard get service kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard NodePort 10.100.124.90 <nodes> 443:31707/TCP 21h
5. 一定要注意,如果是单机版,则直接master-ip:port即可以访问,如果是云版本,一定到找到pod对应的node,然后浏览器访问 node-ip:port访问,我之前不知道,部署成功后也一直访问失败,官网上有说明,但没有看到整了好久。
6,可以通过
kubectl describe pod -n namespace podname #查看节点位于在node上。
kubectl -n kubernetes-dashboard get service kubernetes-dashboard # 查看暴露的端口。
7,创建account并绑定管理员集群角色
$ kubectl create serviceaccount dashboard-admin -n kube-system
$ kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
# 记住token,浏览器输入token登录。
$ kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
ImagePullBackOff,ErrImagePull,CrashLoopBackOff问题解决
dashboard不能正常访问
1,通过 kubectl get pods -A查看dashboard具体情况,发现dashboard的pod节点ImagePullBackOff
2,通过 kubectl describe pod -n namespace podname 查看节点详细情况,看到node2节点无法正擦pull下镜像。
3, 通过kubectl log pod -n namespace podname查看日志。
4,遇到的情况node节点的dns不能用导致镜像pull不下来
vi /etc/sysconfig/network-script/ifcfg-ens33
#修改 DNS1=8.8.8.8为DNS1=114.114.114.114
systemctl restart network
然后 ping 百度可以ping 通
5,重启dashboard的pod,方法有三种
1,在有 yaml 文件的情况下可以直接使用
kubectl replace --force -f xxxx.yaml 来强制替换Pod 的 API 对象,从而达到重启的目的。
2,没有 yaml 文件,但是使用的是 Deployment 对象。kubectl scale deployment esb-admin --replicas=0 -n {namespace}
3,没有 yaml 文件,直接使用的 Pod 对象。kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f -
7,重启后kubectl get pods -A查看启动情况
8,通过 kubectl describe pod -n namespace podname 查看节点位于在node上。
9,kubectl -n kubernetes-dashboard get service kubernetes-dashboard 查看暴露的端口。
更多推荐
已为社区贡献3条内容
所有评论(0)