热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Mac中搭建Kubernetes

Kubernetes是Google和RadHat公司共同主导的开源容器编排项目,功能非常强大,也非常的火热和流行,但同时里面也有很多的概念和名词需要我们去学习和理解。学习任何一个技

KubernetesGoogleRadHat公司共同主导的开源容器编排项目,功能非常强大,也非常的火热和流行,但同时里面也有很多的概念和名词需要我们去学习和理解。学习任何一个技术先需要把基础环境搭建起来,本篇就介绍怎样在Mac中启动单节点的Kubernetes

环境

  • Mac:10.13.6

  • Docker:2.0.0.3 (31259)

  • Kubernetes:1.10.11

启用Kubernetes

Mac中安装了Docker之后,会自动安装了Kubernetes,正常情况下,我们只需要在DockerPreferrences->Kubernetes中勾选Enable Kubernetes,然后点击Apply按钮即可。但由于伟大的墙的存在,这么一个简单的启动也会变得一波三折。

如果您是直接在Docker中启用KubernetesKubernetes的状态会一直都是kubernetes is starting...,原因是有一些Kubernetes依赖的镜像不能正常的下载。

Github上有个开源项目可以帮我们手动拉取镜像,执行下面命令拉去改项目代码到本地


git clone https://github.com/maguowei/k8s-docker-for-mac

Docker中修改镜像地址为国内,如下图:

Mac中搭建Kubernetes

在命令行进入到k8s-docker-for-mac目录,执行sh load_images.sh就可以拉去镜像了。

且慢,如果您直接执行了上面拉取镜像的命令,还是不能正常启用Kubernetes,因为有些镜像的版本没对应上。修改k8s-docker-for-mac目录中的images文件,将所有的v1.13.0修改为v1.10.11,因为我本机的Kubernetes版本为1.10.11

修改完保存后,再执行sh load_images.sh拉去镜像即可。

镜像拉取完成后,勾选Enable Kubernetes,点击Apply按钮,等待几分钟,出现下图的状态表示启用成功。

Mac中搭建Kubernetes

运行dashboard

Kubernetes dashboard是一个Web界面的管理工具,如果您习惯使用命令行可以可以忽略。执行下面命令:


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

kubectl proxy #默认情况下代理的是8001端口,如果要指定端口用下面命令

kubectl proxy --port=8080

执行上面命令后,会监听本机的8001的端口,这时访问http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login,可以进入登录界面,如下图:

Mac中搭建Kubernetes

我们采用令牌的方式进行登录,首先创建管理员角色,新建一个名为k8s-admin.yaml的文件,内容如下:


apiVersion: v1

kind: ServiceAccount

metadata:

name: dashboard-admin

namespace: kube-system

---

kind: ClusterRoleBinding

apiVersion: rbac.authorization.k8s.io/v1beta1

metadata:

name: dashboard-admin

subjects:

- kind: ServiceAccount

name: dashboard-admin

namespace: kube-system

roleRef:

kind: ClusterRole

name: cluster-admin

apiGroup: rbac.authorization.k8s.io

在命令行中进入到k8s-admin.yaml文件所在目录,执行下面命令添加管理员角色


kubectl create -f k8s-admin.yaml

获取管理员角色的secret名称


kubectl get secret -n kube-system

Mac中搭建Kubernetes

获取token


kubectl describe secret dashboard-admin-token-tc5wk -n kube-system

secret后面名称就是上图中红框的名称

Mac中搭建Kubernetes

将登陆界面切换到令牌的模式,上图中的token值粘贴到令牌输入框中,点击登录可以进入到管理界面,如下图:

Mac中搭建Kubernetes

总结

学习任何一个新的知识领域,即便是很简单的一些操作流程,也会遇到各种各样的问题,解决这些问题的过程就是学习和成长。

Kubernetes的功能非常强大,不急于在一开始就弄懂所有的概念和操作命令,关键在于要动手去尝试,在一次次的尝试中积累的经验才能让你理解的更深入。

所以,接下来就要尝试将dotNetCore程序部署到Kubernetes中了。

原文地址:http://fwhyy.com/2019/05/building-kubernetes-in-mac/


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 
Mac中搭建Kubernetes



推荐阅读
  • docker+k8s+git+jenkins
    docker+k8s+git+jenkins,Go语言社区,Golang程序员人脉社 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • Kubernetes集群:命名空间(Namespace)
    一、什么是Namespace?你可以认为namespaces是你kubernetes集群中的虚拟化集群。在一个Kubernetes集群中可以拥有多个命名空间,它们在逻 ... [详细]
  • 这篇文章主要讲解了“Kubernetes1.21.0如何部署管理界面Dashboard2”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • flutter图片缓存Flutter的图片缓存机制有问题(可能是我使用的版本1.12.13有问题)网络图片会默认缓存到本地,但是不管图片是不是完整的或者损坏的,导致页面在下次进入的 ... [详细]
  • 基于,docker,快速,部署,多,需求,spark ... [详细]
  • k8shelm官网:https:helm.sh点击charts:https:artifacthub.iopackagessearch?sortrelevance&page11.1h ... [详细]
  • 虚拟机CentOS7挂载文件系统失败上周五下班前没有关闭虚拟机和物理机,今天周一开了虚拟机之后,发现操作系统启动失败。原因跟这篇文章描述的一模一样。解决操作系统的文件系统挂载的问题 ... [详细]
  • 本文整理了Java中fr.adrienbrault.idea.symfony2plugin.util.yaml.YamlPsiElementFactory.createDummyFi ... [详细]
  • 师兄|海涛_一位 sealer maintainer 的心路历程
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了一位sealermaintainer的心路历程相关的知识,希望对你有一定的参考价值。引言 ... [详细]
  • SaltStack(二)远程执行
    SaltStack----远程执行1远程执行shell命令2base路径和YAML语法3配置管理3.1单个sls文件的编写3.2apache的安装配置启动sls文件4编写远程执行模 ... [详细]
  • K8s-helm简介及基本概念详解
    ​Helm 使用的包格式称为 chart,它是一个描述 Kubernetes 相关资源对象的文件集合,这篇文章主要介绍了K8s-helm简介及基本概念,需要的朋友可以参考下 ... [详细]
author-avatar
儒雅的天麟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有