一,Yum文件
1、dashboard-controller.yaml 内容如下:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
# Keep the name in sync with image version and
# gce/coreos/kube-manifests/addons/dashboard counterparts
name: kubernetes-dashboard-latest
namespace: kube-system
spec:
replicas: 1
template:
metadata:
labels:
k8s-app: kubernetes-dashboard
version: latest
kubernetes.io/cluster-service: "true"
spec:
containers:
- name: kubernetes-dashboard
image: bestwu/kubernetes-dashboard-amd64:v1.6.3
resources:
# keep request = limit to keep this container in guaranteed class
limits:
cpu: 100m
memory: 50Mi
requests:
cpu: 100m
memory: 50Mi
ports:
- containerPort: 9090
args:
- --apiserver-host=http://192.168.88.247:8080
livenessProbe:
httpGet:
path: /
port: 9090
initialDelaySeconds: 30
timeoutSeconds: 30
注意红色字体部分
Image:需改成国内镜像地址,bestwu/kubernetes-dashboard-amd64:v1.6.3
apiserver-hos:为master IP
2、dashboard-service.yaml 内容如下:
apiVersion: v1
kind: Service
metadata:
name: kubernetes-dashboard
namespace: kube-system
labels:
k8s-app: kubernetes-dashboard
kubernetes.io/cluster-service: "true"
spec:
selector:
k8s-app: kubernetes-dashboard
ports:
- port: 80
targetPort: 9090
二,启动yuml
在master服务上启动如下命令:
kubectl create -f dashboard-controller.yaml
kubectl create -f dashboard-service.yaml
验证是否正常启动
kubectl get pods --all-namespaces
查询dashboard运行的端口
kubectl describe --namespace kube-system service kubernetes-dashboard
接下来可以通过浏览器访问webui页面了:
或
http://masterIp:8080/api/v1/namespaces/kubesystem/services/http:kubernetes-dashboard:/proxy/
销毁应用
kubectl delete deployment kubernetes-dashboard -- namespace=kube-system
kubectl delete svc kubernetes-dashboard -- namespace=kube-system
问题:
这时候看上去一切很正常,但是需要注意,我们访问时会连接超时,当时觉得ip策略的问题,网上搜索结果有两种,一种是集群ip网段不一致,需刷新网段ip,无果,最后发现第二种,如下:
需在执行服务的node服务器上执行:iptables -P FORWARD ACCEPT