• k8s集群搭建(三)


    Dashboard安装

    Kubernetes Dashboard是k8s提供基于Web的监控和操作界面,可以通过UI来显示集群的所有工作负载,除了查看资源,还是创建、编辑、更新、删除资源。

    根据Kubernetes Dashboard的github上提供的样例编写kubernate-dashboard.yml文件,内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
    labels:
    app: kubernetes-dashboard
    name: kubernetes-dashboard
    namespace: kube-system
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: kubernetes-dashboard
    template:
    metadata:
    labels:
    app: kubernetes-dashboard
    spec:
    containers:
    - name: kubernetes-dashboard
    # gcr.io需要翻墙 这里找的第三方的服务
    image: myhub.fdccloud.com/library/kubernetes-dashboard-amd64:v1.5.1
    imagePullPolicy: Always
    ports:
    - containerPort: 9090
    protocol: TCP
    volumeMounts:
    - name: "kubeconfig"
    mountPath: "/etc/kubernetes/"
    readOnly: true
    args:
    #增加的配置
    - --apiserver-host=http://master:8080
    livenessProbe:
    httpGet:
    path: /
    port: 9090
    initialDelaySeconds: 30
    timeoutSeconds: 30
    volumes:
    - name: "kubeconfig"
    hostPath:
    path: "/etc/kubernetes/"
    ---
    kind: Service
    ap 大专栏  k8s集群搭建(三)iVersion: v1
    metadata:
    labels:
    app: kubernetes-dashboard
    name: kubernetes-dashboard
    namespace: kube-system
    spec:
    type: NodePort
    ports:
    - port: 80
    targetPort: 9090
    selector:
    app: kubernetes-dashboard

    执行下面命令,创建并启动dashboard

    1
    $ kubectl create -f kubernete-dashboard.yml

    通过下面命令查看是否成功

    1
    $ kubectl get pod --namespace=kube-system

    在国内没有翻墙的情况下,这个pod的status会卡在ContainerCreating,

    通过下面命令查看具体情况

    1
    $ kubectl describe pod kubernetes-dashboard --namespace=kube-system

    可以看到下面的出错信息

    1
    2
    Error syncing pod, skipping: failed to "StartContainer" for "POD" with ErrImagePull: "image pull failed for gcr.io/google_containers/pause-amd64:3.0, this may be because there are no credentials on this request.  details: (Error response from daemon: Get https://gcr.io/v1/_ping: dial tcp 64.233.187.82:443: i/o timeout)"
    Error syncing pod, skipping: failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image "gcr.io/google_containers/pause-amd64:3.0""

    这是因为kubernetes在创建pod的时候,需要从gcr.io下载pause-amd64镜像,作为pod的网络接入点。

    但是目前国内无法访问gcr.io,这个问题会导致无法下载该镜像,然后Pod一直处于ContainerCreating状态。

    那这里就在集群的node节点上都通过阿里云的镜像来pull镜像

    1
    2
    docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0
    docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0

    然后重新创建pod

    1
    2
    $ kubectl delete -f kubernete-dashboard.yml  //先删除失败的pod
    $ kubectl create -f kubernete-dashboard.yml

    在此通过kubectl get pod –namespace=kube-system查看pod状态应该是running了,表示成功

    这个时候在浏览器通过http://172.16.110.108:8080/ui会自动跳转到http://172.16.110.108:8080/api/v1/proxy/namespaces/kube-system/services/kube-ui/#/dashboard/即可访问kebe-ui的dashboard的页面,但是这时候我又遇到了一个问题提示flannel的网络无法访问,这是因为我之前master上没有安装配置flannel,所以kube-apiserver无法访问dashboard的pod

    参考前面的flannel的安装配置,在master也安装配置flannel,重启kube-apiserver只有就可以访问。不过我是在重启master之后才可以访问的。

  • 相关阅读:
    设计模式(三):装饰模式
    实战pythoninstagram
    设计模式(二):观察者模式
    instagram 的api研究
    设计模式(四):代理模式
    设计模式(五):工厂模式
    qq微博oauth认证记录
    js 处理json数据记录
    17Django高级之Auth
    20Django高级之信号
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12227167.html
Copyright © 2020-2023  润新知