haloi 发表于 2018-1-4 12:39:07

Kubernetes 1.5 配置dashboard

  配置kubernetes的dashboard相对简单。同样的,只需要从源码中获取到dashboard-controller.yaml及dashboard-service.yaml文件,稍加修改即可:
  

wget https://rawgit.com/kubernetes/kubernetes/master/cluster/addons/dashboard/dashboard-controller.yaml  
wget https://rawgit.com/kubernetes/kubernetes/master/cluster/addons/dashboard/dashboard-service.yaml
  

  修改dashboard-controller.yaml如下:
  

kind: Deployment  
apiVersion: extensions
/v1beta1  
metadata:
  labels:
  app: kubernetes
-dashboard  name: kubernetes
-dashboard  namespace: kube
-system  
spec:
  replicas:
1  revisionHistoryLimit:
10  selector:
  matchLabels:
  app: kubernetes
-dashboard  template:
  metadata:
  labels:
  app: kubernetes
-dashboard  # Comment the following annotation
if Dashboard must not be deployed on master  annotations:
  scheduler.alpha.kubernetes.io
/tolerations: |[
  {
"key": "dedicated","operator": "Equal","value": "master","effect": "NoSchedule"  }
  ]
  spec:
  containers:
- name: kubernetes-dashboard  image: myhub.fdccloud.com
/library/kubernetes-dashboard-amd64:v1.5.1  imagePullPolicy: Always
  ports:
- containerPort: 9090  protocol: TCP
  args:
  # Uncomment the following line to manually specify Kubernetes API server Host
  # If not specified, Dashboard will attempt to auto discover the API server and connect
  # to it. Uncomment only
if the default does not work.  #额外增加
- --apiserver-host=http://10.5.10.116:8080  

livenessProbe:  httpGet:
  path:
/  port:
9090  initialDelaySeconds:
30  timeoutSeconds:
30  

  dashboard-service.yaml不需要修改,这里直接给出源码中的示例文件:
  

kind: Service  
apiVersion: v1
  
metadata:
  labels:
  app: kubernetes
-dashboard  name: kubernetes
-dashboard  namespace: kube
-system  
spec:
  type: NodePort
  ports:
- port: 80  targetPort:
9090  selector:
  app: kubernetes
-dashboard  

  执行启动即可:
  

kubectl create -f dashboard-controller.yaml  
kubectl create
-f dashboard-service.yaml  

  启动后,可以通过如下指令查看映射的nodeport:
  

# kubectl get svc --namespace=kube-system  
NAME                   CLUSTER
-IP   EXTERNAL-IP   PORT(S)         AGE  
kube
-dns               10.254.0.100   <none>      53/UDP,53/TCP   5h  
kubernetes
-dashboard   10.254.68.60   <nodes>       80:30097/TCP    1d  

  以下访问地址皆可用于访问:
  

http://10.5.10.116:8080/ui  

  
http://10.5.10.116:30097
  

  dashboard界面如图:
https://images2015.cnblogs.com/blog/788294/201703/788294-20170315174314885-386438656.png
  错误说明:
  在实际的配置过程中,发现dashboard无法启动,通过kubectl logs 查看pod日志,如下:
  

Using HTTP port: 9090  
Error
while initializing connection to Kubernetes apiserver. This most likely means that the cluster is misconfigurhas invalid apiserver certificates or service accounts configuration) or the --apiserver-host param points to a ser not exist. Reason: invalid configuration: no configuration has been provided  
Refer to the troubleshooting guide
for more information: https://github.com/kubernetes/dashboard/blob/master/docs/uubleshooting.md  

  这个错误,就是因为需要在dashboard启动的args参数里加上如下参数:
  

--apiserver-host=http://10.5.10.116:8080  

  另外,我们发现这个dashboard的访问没有任何的认证与授权机制,后续会专门对kubernetes的认证机制做相关说明。
页: [1]
查看完整版本: Kubernetes 1.5 配置dashboard