zoukankan      html  css  js  c++  java
  • windows环境下Kubernetes及Docker安装(那些坑)

    k8s 和 Docker容器技术,当前非常流行的技术. 让人日狗的是,   这套技术栈对CN的donet 程序员不怎么友好。娓娓道来,1. 好多镜像都是需要梯子才能访问; 2. window程序员天生对命令行操作陌生。3. 好多资料都是linux 等等..... 

    下面我们来一起安装部署下。

    一, 安装环境。

    1. Docker 容器本质就是虚拟技术。简单理解就是vmware 虚拟机(注:两种不同虚拟化技术,自行研究)。 建议windows 10 以上且支持虚拟化技术环境。如果机器没有开启虚拟化,进入Boise开启。 如果不支持虚拟化,需要安装 Docker Toolbox .  本人以下机器环境如下, 下面的安装步骤演示:  windows 10 且启用虚拟化.

    下载 Docker 安装包. (演示使用的是Edge版本)

     安装后长这个样子:

     * 这里面有坑, 安装好以后, 不能直接勾选启用K8s选项,再说一遍,不要点. 

    配置镜像, 

    {
      "registry-mirrors": [
        "https://dockerhub.azk8s.cn",
        "https://registry.docker-cn.com"
      ],
      "insecure-registries": [],
      "debug": true,
      "experimental": true
    }

     二, 拉取K8s镜像.

        拉取镜像完成后执行如下操作.  具体可参考 博友文章. 开启和安装Kubernetes 基于Docker For Windows  按照此步骤下来, 在次不再详赘述.

    Powershell 执行:
    
    步骤a:   git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
    cd k8s-for-docker-desktop
    
    步骤b:   .load_images.ps1
    
    
    步骤3:  打开Docker DashBoard , 勾选"Enable Kubernetes" 选项. 此步骤比较耗时,耐心等待
    

      

        

     三, 安装Kubernetes Dashboard

    步骤1 . 查看当前k8s的kubectl 安装是否正确. 
    PS执行:   kubectl version 命令
    
    步骤2: 通过yaml文件安装部署镜像. 
    PS执行:
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
    
     或  (从之前的k8s-for-docker-desktop 目录):
    PS执行:  kubectl create -f kubernetes-dashboard.yaml
    
    
      
    

    查看当前docker运行状态:

    PS执行:  kubectl get pods --namespace kube-system

    四,开启代理,

    Ps: kubectl proxy

    注意,只有当dashboard 容器,正常运行也就是状态为(Running),才能打开浏览器访问。当出现错误时,才看容器运行具体信息,使用如下命令:

    kubectl describe pod kubernetes-dashboard-669f9bbd46-rhmst  --namespace kube-system

    执行 kubernetes-dashboard.yaml 文件时,可能拉取镜像失败,导致doashboard 容器不能正常执行。

    镜像拉取失败处理:

    脚本
    
    $DASHDOARD_VERSION="v1.10.1"
    $HEAPSTER_VERSION="v1.5.4"
    $GRAFANA_VERSION="v5.0.4"
    $INFLUXDB_VERSION="v1.5.2"
    $username="registry.cn-hangzhou.aliyuncs.com/google_containers"
    $images="kubernetes-dashboard-amd64:${DASHDOARD_VERSION}","heapster-grafana-amd64:${GRAFANA_VERSION}","heapster-amd64:${HEAPSTER_VERSION}","heapster-influxdb-amd64:${INFLUXDB_VERSION}"
            
    foreach($item in $images)
    { 
    	docker pull ${username}/${item}
    	docker tag ${username}/${item} k8s.gcr.io/${item}
    	docker rmi ${username}/${item} 
    }
    

      

    以下kubectl 常用命令:

    kubectl create -f kubernetes-dashboard.yaml --删除资源
    
    kubectl apply -f kubernetes-dashboard.yaml  --重新应用配置

    五, 打开Doashbard ,

    打开浏览器: 

     http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default

    此时可能 也有问题无法登陆

    "Deleted kubernetes-dashboard version 1.10.1 and switched to v2.0.0-beta8 which worked like a charm: localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/overview?namespace=_all" 
    参考链接:https://github.com/kubernetes-sigs/kubespray/issues/5347
    

    获取登录token 命令:

    ---token 登录
    
    $TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
    kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
    echo $TOKEN
    
    "Any key to exit"  ;
    Read-Host | Out-Null ;
    Exit

      

    终于躺坑完毕,

  • 相关阅读:
    用Inno Setup来解决.NetFramework安装问题
    NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者
    NSIS
    Nullsoft教程 NSIS初学者图文教程一
    flex 实例Demo
    计算机组成原理
    Spring知识点提炼
    JAVA Web从前端到后台常用框架介绍
    使用navicat将mysql转换成sqlserver
    JDK 5 ~ 10 新特性倾情整理!
  • 原文地址:https://www.cnblogs.com/voidobject/p/12980444.html
Copyright © 2011-2022 走看看