[LOG] ASP.NET Core on K8S Starting...

01

写在之前

当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经越来越多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程。因此我决定开始学习Kubernetes,会将学习当中的过程记录下来,预计会形成一个系列,暂且命名为:ASP.NET Core on K8S,而这个系列会由3个部分组成,且会在不同的时期写完:

1、ASP.NET Core on K8S学习初探:在Docker for Windows中搭建单节点环境,初步了解有个感性认识

2、ASP.NET Core on K8S深入学习:在Linux上搭建K8S集群,对K8S的一些核心概念有个深入的认识

3、ASP.NET Core on ACK/TKE实战:借助阿里云/腾讯云容器服务进行生产环境的容器部署和运维的一些实战总结

02

关于K8S

  关于K8S,建议阅读《10分钟看懂Docker和K8S》,这几乎是一篇不用耗费多少脑细胞的文章,因为讲的实在是太通俗易懂了。

  总体来说,就是在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对Docker及容器进行更高级更灵活的管理。

  于是,源自于Google的K8S出现了。K8S就是基于容器的集群管理平台,它的全称,是Kubernetes。

Kubernetes 这个单词来自于希腊语,含义是舵手或领航员。K8S是它的缩写,用“8”字替代了“ubernete”这8个字符。

  这里不再过多解释,因为上面的文章里已经讲的很清楚了,理清那些繁多的K8S概念留到后面再来,这里主要是先玩起来,玩了再说。K8S的环境搭建在Windows和Linux下,还可以基于云服务提供商封装好的K8S服务进行快速构建,这里为了快速玩玩,选择了在Windows下基于Docker for Windows来进行。

03

搭建步骤

2.1 前置条件

  确保当前Windows环境有以下几个关键点:

  为Docker for Windows的daemon配置镜像加速:

  

2.2 下载K8S镜像

  首先,从Git上下载K8S所需的docker镜像:

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

  这里,为了匹配18.06版本(Docker CE版本号或者你的Docker for Windows的版本号),切换到该项目的18.09分支。

git checkout 18.09

  Note:关于哪个版本切换到哪个分支,请参阅这里。

  然后,开始加载镜像,这里通过PowerShell的方式加载:

 .\load_images.ps1

  

  当然,也可以通过Bash Shell的方式加载:

./load_images.sh

  最后,在Docker for Windows中启用K8S:

  

2.3 快速配置K8S

  (可选)切换运行上下文至docker-for-desktop

kubectl config use-context docker-for-desktop

  核心:验证Kubernetes集群状态

kubectl cluster-info
kubectl get nodes

  

  Note:执行了kubectl cluster-info之后就可以看到已经启动了一个master节点,也就是single-node模式启用了。

  面板:部署Kubernetes Dashboard

kubectl create -f kubernetes-dashboard.yaml

  访问:开启API Server访问代理,向外部提供面板访问

kubectl proxy

  

  然后就可以通过下面这个URL访问Kubernetes的Dashboard:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default

  但是,你会发现出现的如下这个页面,你可以选择跳过 也可以选择一个kubeconfig。

  

  其中,kubeconfig的位置(这里是Windows系统)位于:%UserProfile%\.kube\config。当然,这里也可以选择跳过,不用管这个config。如果,碰到提示“not enough data to create auth”,需要执行以下命令来设置一下kubeconfig:

$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"

  最后,可以正常登录后看到Dashboard的全貌了:

  

  Note:如果想通过其它主机访问并且让API Server能够接受所有主机的请求,请通过以下命令启动API Server。

kubectl proxy --address='0.0.0.0'  --accept-hosts='^*$'

04

小结

本篇简单地记录一下如何在Windows环境下基于Docker for Windows来搭建一个单节点的K8S环境,下一篇会将ASP.NET Core以Docker方式加入到K8S集群中托管,操作K8S来管理Docker实例来有一个感性认识。

ASP.NET Core on K8S学习初探(1)相关推荐

  1. ASP.NET Core on K8S学习初探(3)部署API到K8S

    " 终于可以部署ASP.NET Core到K8S中了..." 在上一篇<基本概念快速一览>中,我们把基本的一些概念快速地简单地不求甚解地过了一下,本篇开始我们会将ASP ...

  2. ASP.NET Core on K8S学习初探(2)

    " [LOG] ASP.NET Core on K8S Starting..." 在上一篇<单节点环境搭建>中,通过Docker for Windows在Windows ...

  3. ASP.NET Core on K8s学习之旅(14)Ingress灰度发布

    [云原生]| 作者/Edison Zhou 这是恰童鞋骚年的第236篇原创文章 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使用,然后我还录了一个快速分享小视频介绍了一 ...

  4. ASP.NET Core on K8s学习之旅(13)Ocelot API网关接入

    [云原生]| 作者/Edison Zhou 这是恰童鞋骚年的第232篇原创文章 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使用,考虑到很多团队都在使用Ocelot作为 ...

  5. ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard

    上一篇<K8S集群部署>中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制,然后部署一下Dashboard,完 ...

  6. ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建

    在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...

  7. 文章目录 | .NET Core on K8s学习之旅 (更新至20200618)

    .NET Core on K8s学习之旅 更新记录: -- 20200511 增加Ingress & Nginx Ingress介绍 -- 20200515 增加Ocelot API网关集成示 ...

  8. .NET Core on K8S 学习与实践系列文章索引 (更新至20191126)

    更新记录: -- 2019-11-26 增加Docker容器日志系列文章 近期在学习Kubernetes,基于之前做笔记的习惯,已经写了一部分文章,因此给自己立一个flag:完成这个<.NET ...

  9. .NET Core on K8S学习实践系列文章索引(持续更新)

    近期在学习Kubernetes,基于之前做笔记的习惯,已经写了一部分文章,因此给自己立一个2019年的flag:完成这个<.NET Core on K8S学习实践>系列文章!这个系列会持续 ...

最新文章

  1. PHP Session有效期的相关问题
  2. 软件测试师具备的素质_软件测试工程师有哪些需要具备的能力呢
  3. 制作程序化装饰花纹图案_用装饰器设计图案装饰
  4. java 类的传递_Java基本类型的传递
  5. OkHttp之BridgeInterceptor简单分析
  6. Wilcoxon符号秩+秩和检验学习[转载]
  7. 射极跟随器实验报告数据处理_射极跟随器实验报告
  8. 盘点HTML页面跳转的5种方法
  9. Android studio app登录界面设计
  10. 傲腾readyboost_使用SD卡和ReadyBoost提升上网本速度
  11. 合取式/合取范式/主合取范式/重言式/矛盾式 基本概念
  12. mysql关于xsd数据集的论述
  13. js正则判断域名和IP的端口路径是否正确
  14. 计算机内存读取写入原理是什么
  15. Excel 2013 如何分列操作
  16. Unity3D 放大缩小图片
  17. jenkins-github上提交代码后构建job(十二)
  18. 【系统】《写给大忙人看的操作系统》--研读
  19. css-边框重叠问题解决
  20. E站账号cookie分享_关于亚马逊账买手账号的分类

热门文章

  1. android html邮件 messagecompose,android email 转发附件丢失问题
  2. 多点认证wi-fi_准备使用Wi-Fi 6:认证将于2019年第三季度启动
  3. 使用mintty(_如何使用Mintty改善Cygwin控制台
  4. dropbox_Google的新存储定价与Microsoft,Apple和Dropbox相比如何
  5. 2015计算机应用基础平时作业答案,2015秋《计算机应用基础》第一次作业
  6. Android6 0权限机制(一):介绍
  7. ORACLE 11G DATA GUARD主从切换
  8. 【Solidity】3.类型 - 深入理解Solidity
  9. Stopwatch类学习
  10. Mac怎么不能拷贝文件到U盘