Kubernetes的本地集群搭建是一件颇费苦心的活,网上有各种参考资源,由于版本和容器的不断发展,搭建的方式也是各不相同,这里基于Docker CE的18.09.0版本,在Mac OS、Win10下分别搭建了一次。

一、Mac OS下搭建

安装Docker CE并进行相关配置

  从Docker官方站点下载并安装Docker for Mac或Docker for Windows

  截止目前用的是18.09.0版本,这一步骤比较简单,略过。

在 Docker -> Preferences ... 中,配置Deamon的mirrors为:https://registry.docker-cn.com

下载Kubernetes安装所需Docker镜像 

从阿里云镜像服务下载Kubernetes安装所需Docker镜像

git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop
cd k8s-for-docker-desktop

  加载镜像(注:在Bash下执行)

./load_images.sh

  在Docker for Mac中开启 Kubernetes,等待如下消息 Kubernetes is running

  这时候 Kubernetes 已经可以用了,我们可以看到docker 版本信息中,编排器已经成为了kubernetes

配置 Kubernetes

1)验证 Kubernetes 集群状态

kubectl cluster-info
kubectl get nodes

2)部署 Kubernetes dashboard

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

3)开启 API Server 访问代理

kubectl proxy

4)这个时候需要验证才能进入,这里使用令牌来访问,那么令牌从哪儿获取呢?

在kubernetes-dashboard.yaml父级文件夹下创建account.yaml文件用于访问kubernetes-dashboard,添加如下配置

# Create Service AccountapiVersion: v1 
kind: ServiceAccount 
metadata:   
  name: admin-user   
  namespace: kube-system 
---# Create ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1beta1 
kind: ClusterRoleBinding 
metadata:   
  name: admin-user 
roleRef:   
  apiGroup: rbac.authorization.k8s.io   
  kind: ClusterRole   
  name: cluster-admin 
subjects: 
  - kind: ServiceAccount   
  name: admin-user   
  namespace: kube-system
文件位置如下所示:
5)获取登陆令牌kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

获取输出的token粘贴复制到kubernetes-dashboard登陆页面获取授权

当然你也可以不用令牌登录,使用kubeconfig进行验证和登录

6)通过如下 URL 访问 Kubernetes dashboard
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default

如上,一切正常,请在界面上尽情的乱点吧。另外,如果有兴趣,你还可以安装Dashboard的Heapster插件,这里就不再介绍了。

二、Windows 10下的搭建

Win10下的搭建和Mac OS差别不大,只是使用PowerShell管理员身份下载镜像的时候需要注意执行命令为:.\load_images.ps1

安装Docker CE并进行相关配置

  这里版本建议是docker ce 18.06以上的版本。然后进行相关的配置,这里重点配置拉取镜像的地址。如下图所示:

下载需要的Docker镜像

  从阿里云镜像服务下载Kubernetes安装所需Docker镜像

git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop
cd k8s-for-docker-desktop

  加载镜像(注:如果在Windows中请在PowerShell下执行)

.\load_images.ps1

说明: 如果因为安全策略无法执行 PowerShell 脚本,请在 “以管理员身份运行” 的 PowerShell 中执行 ```Set-ExecutionPolicy RemoteSigned``` 命令。

  Settings里启动Kubernetes

配置 Kubernetes

  该步骤同上面的Mac OS的一致,请移步上面查看,最后进入Dashboard,如下图所示。

参考文档

搭建基于Docker社区版的Kubernetes本地集群的更多相关文章

  1. docker swarm使用keepalived+haproxy搭建基于percona-xtradb-cluster方案的高可用mysql集群

    一.部署环境 序号 hostname ip 备注 1 manager107 10.0.3.107 centos7;3.10.0-957.1.3.el7.x86_64 2 worker68 10.0.3 ...

  2. 基于Docker Compose构建的MySQL MHA集群

    Docker MySQL MHA 基于Docker 1.13.1之上构建的MySQL MHA Docker Compose Project 可快速启动GTID模式下的MasterHA集群, 主用于My ...

  3. Ubuntu16.04环境下搭建基于三台主机的mysql galera cluster集群(实测有效)

    (注意: (1)文中红色字体部分不一定需要操作 (2)由于word文档编辑的原因,实际操作时部分命令需要手动输入!!直接复制粘贴会提示错误!! ) 一  搭建环境: 1 Ubuntu16.04版本(系 ...

  4. 三万字无坑搭建基于Docker+K8S+GitLab/SVN+Jenkins+Harbor持续集成交付环境

    写在前面 最近在 K8S 1.18.2 版本的集群上搭建DevOps环境,期间遇到了各种坑.目前,搭建环境的过程中出现的各种坑均已被填平,特此记录,并分享给大家! 文章和搭建环境所需要的yml文件已收 ...

  5. 基于docker和cri-dockerd部署kubernetes v1.25.3

    基于docker和cri-dockerd部署kubernetes v1.25.3 1.环境准备 1-1.主机清单 主机名 IP地址 系统版本 k8s-master01 k8s-master01.wan ...

  6. 搭建Kubernetes容器集群管理系统

    1.Kubernetes 概述 Kubernetes 是 Google 开源的容器集群管理系统,基于 Docker 构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.劢态扩缩容等功能套件. 基 ...

  7. 5.基于二进制部署kubernetes(k8s)集群

    1 kubernetes组件 1.1 Kubernetes 集群图 官网集群架构图 1.2 组件及功能 1.2.1 控制组件(Control Plane Components) 控制组件对集群做出全局 ...

  8. 使用 Docker 一步搞定 ZooKeeper 集群的搭建

    背景 原来学习 ZK 时, 我是在本地搭建的伪集群, 虽然说使用起来没有什么问题, 但是总感觉部署起来有点麻烦. 刚好我发现了 ZK 已经有了 Docker 的镜像了, 于是就尝试了一下, 发现真是爽 ...

  9. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

随机推荐

  1. node.js,express入门看详细篇

    先最简单的代码 安装 npm install express app.js 代码内容 const express = require('express') const app = express() ...

  2. Quartz学习--二 Hello Quartz! 和源码分析

    Quartz学习--二  Hello Quartz! 和源码分析 三.  Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ...

  3. java 保留字段volatile、transient、native、synchronized

    1.volatile Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程.当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享 ...

  4. CSS伪类详情

    参考:http://blog.csdn.net/Panda_m/article/details/50084699

  5. 使用 GNU profiler 来提高代码运行速度

    各种软件对于性能的需求可能会有很大的区别,但是很多应用程序都有非常严格的性能需求,这一点并不奇怪.电影播放器就是一个很好的例子:如果一个电影播放器只能以所需要速度的 75% 来播放电影,那么它几乎就没 ...

  6. PAT1061:Dating

    1061. Dating (20) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Sherlock Holme ...

  7. PAT1006:Sign In and Sign Out

    1006. Sign In and Sign Out (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...

  8. 网络编程之套接字(tcp)

    经过几天高强度的学习,对套接字的编程有了初步的认识,今天对这几天所学的知识总结一下:首先简单阐述一下tcp通信: TCP提供的是可靠的,顺序的,以及不会重复的数据传输,处理流控制,由于TCP是可靠的, ...

  9. JavaScript-通过原型继承一个对象

    <script> //通过原型继承一个对象 //inherit()返回了一个继承原自原型对象P的属性的新对象 //這裡使用ECMAScript5中的object.create()函數(如果 ...

  10. SVN客户端和服务器端下载地址

    https://sourceforge.net/projects/tortoisesvn/files/1.9.7/Application/TortoiseSVN-1.9.7.27907-x64-svn ...