美文网首页
记录一下Mac上面安装桌面版K8S

记录一下Mac上面安装桌面版K8S

作者: Mr_Laoyu | 来源:发表于2020-04-17 18:25 被阅读0次

    去官网下载docker-desktop for mac 链接 并安装

    about docker desktop 我的资源配置

    注意K8S的版本 v1.15.5

    下载k8s的相关组

    由于墙太厚了,自动更新不成功,我们用阿里云提供的镜像,创建一个可执行文件load_images.sh,下面是文件内容

    注意版本号 KUBE_VERSION 是否与上面的k8s版本号一致,不一致改成一致的就可以了

    ##!/bin/bash
    
    set -e
    KUBE_VERSION=v1.15.5
    KUBE_DASHBOARD_VERSION=v1.10.1
    KUBE_PAUSE_VERSION=3.1
    ETCD_VERSION=3.3.10
    COREDNS_VERSION=1.3.1
    GCR_URL=k8s.gcr.io
    ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers
    
    # get images
    images=(kube-proxy:${KUBE_VERSION}
    kube-scheduler:${KUBE_VERSION}
    kube-controller-manager:${KUBE_VERSION}
    kube-apiserver:${KUBE_VERSION}
    pause:${KUBE_PAUSE_VERSION}
    etcd:${ETCD_VERSION}
    coredns:${COREDNS_VERSION}
    kubernetes-dashboard-amd64:${KUBE_DASHBOARD_VERSION})
    
    for imageName in ${images[@]} ; do
    docker pull $ALIYUN_URL/$imageName
    docker tag $ALIYUN_URL/$imageName $GCR_URL/$imageName
    docker rmi $ALIYUN_URL/$imageName
    done
    
    docker images
    
    

    运行文件等待执行完成

    $ ./load_images.sh
    
    打勾重启看看有没有全部running

    命令行看看版本,出现client 和server 就表示安装成功


    image.png

    由于我是升级上来的,安装期间遇到很多坑,最后一怒之下做了这个操作,按上面步骤再走一遍终于成功(此间凄凉何人诉)


    image.png

    k8s web ui配置(kubernetes-dashboard)

    还是由于墙的原因,我们在本地创建一个yaml文件webui.yaml

    apiVersion: v1
    kind: Secret
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard-certs
      namespace: kube-system
    type: Opaque
    
    ---
    # ------------------- Dashboard Service Account ------------------- #
    
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kube-system
    
    ---
    # ------------------- Dashboard Role & Role Binding ------------------- #
    
    kind: Role
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: kubernetes-dashboard-minimal
      namespace: kube-system
    rules:
      # Allow Dashboard to create 'kubernetes-dashboard-key-holder' secret.
    - apiGroups: [""]
      resources: ["secrets"]
      verbs: ["create"]
      # Allow Dashboard to create 'kubernetes-dashboard-settings' config map.
    - apiGroups: [""]
      resources: ["configmaps"]
      verbs: ["create"]
      # Allow Dashboard to get, update and delete Dashboard exclusive secrets.
    - apiGroups: [""]
      resources: ["secrets"]
      resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"]
      verbs: ["get", "update", "delete"]
      # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
    - apiGroups: [""]
      resources: ["configmaps"]
      resourceNames: ["kubernetes-dashboard-settings"]
      verbs: ["get", "update"]
      # Allow Dashboard to get metrics from heapster.
    - apiGroups: [""]
      resources: ["services"]
      resourceNames: ["heapster"]
      verbs: ["proxy"]
    - apiGroups: [""]
      resources: ["services/proxy"]
      resourceNames: ["heapster", "http:heapster:", "https:heapster:"]
      verbs: ["get"]
    
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: kubernetes-dashboard-minimal
      namespace: kube-system
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: kubernetes-dashboard-minimal
    subjects:
    - kind: ServiceAccount
      name: kubernetes-dashboard
      namespace: kube-system
    
    ---
    # ------------------- Dashboard Deployment ------------------- #
    
    kind: Deployment
    apiVersion: apps/v1
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kube-system
    spec:
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          k8s-app: kubernetes-dashboard
      template:
        metadata:
          labels:
            k8s-app: kubernetes-dashboard
        spec:
          containers:
          - name: kubernetes-dashboard
            image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
            ports:
            - containerPort: 8443
              protocol: TCP
            args:
              - --auto-generate-certificates
              # 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://my-address:port
            volumeMounts:
            - name: kubernetes-dashboard-certs
              mountPath: /certs
              # Create on-disk volume to store exec logs
            - mountPath: /tmp
              name: tmp-volume
            livenessProbe:
              httpGet:
                scheme: HTTPS
                path: /
                port: 8443
              initialDelaySeconds: 30
              timeoutSeconds: 30
          volumes:
          - name: kubernetes-dashboard-certs
            secret:
              secretName: kubernetes-dashboard-certs
          - name: tmp-volume
            emptyDir: {}
          serviceAccountName: kubernetes-dashboard
          # Comment the following tolerations if Dashboard must not be deployed on master
          tolerations:
          - key: node-role.kubernetes.io/master
            effect: NoSchedule
    
    ---
    # ------------------- Dashboard Service ------------------- #
    
    kind: Service
    apiVersion: v1
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kube-system
    spec:
      ports:
        - port: 443
          targetPort: 8443
      selector:
        k8s-app: kubernetes-dashboard
    
    $ kubectl apply -f ./webui.yaml
    
    //查看有没有running
    $ kubectl get pod --all-namespaces -o wide
    
    image.png
    $ kubectl proxy
    

    访问这个链接 http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy

    选择令牌登录
    以下命令获取令牌,复制填到密码框
    $ TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}')
    $ kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
    $ echo $TOKEN
    
    登录成功

    相关文章

      网友评论

          本文标题:记录一下Mac上面安装桌面版K8S

          本文链接:https://www.haomeiwen.com/subject/vybyvhtx.html