上一篇《K8S集群部署》中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制,然后部署一下Dashboard,完成可视化管理。本篇已加入了《.NET Core on K8S学习实践系列文章索引》,更多内容请到索引中查看。

01

准备一个ASP.NET Core项目

这部分请参考我之前的一篇文章《ASP.NET Core on K8S学习初探(3)》,准备一个简单的ASP.NET Core WebAPI示例项目。

其中,你可以直接使用我上传的这个镜像(edisonsaonian/k8s-demo)。

  

我们可以通过浏览器来验证一下是否部署成功了。通过访问两个Node节点的30409端口,可以得到如下结果:

  

  

  由于我们的示例WebAPI项目十分简单,因此能够访问到ValuesController的接口就代表我们已经部署到K8S成功了。

02

K8S部署过程解析

刚刚我们成功部署了一个ASP.NET Core WebAPI项目到K8S集群中,由于在yaml中我们设置了两个Pod副本,他们分别运行在了k8s-node1和k8s-node2中:

  

这里我们来看看整个部署的过程,大体上过一遍流程,能够有个大概印象就可以,下图主要参考自CloudMan的《每天5分钟玩转Kubernetes》一书。

  (1)Kubectl发送部署请求到API Server

  (2)API Server通知Controller Manager创建一个deployment资源

  (3)Scheduler执行调度任务,将两个Pod副本分发到k8s-node1与k8s-node2

  (4)k8s-node1和k8s-node2上的kubectl在各自的节点上创建并运行Pod(当然,其中包括了拉取镜像,创建容器等一系列操作)

另外的补充:

  (1)所有应用的配置和当前状态信息都会保存在etcd中,执行kubectl get pod时API Server会从etcd中读取这些数据

  (2)flannel会为每个pod分配IP,这块先了解到这里就好,后面会介绍网络。

03

部署Dashboard

按理说,部署Dashboard就下面一句话:

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

  But,默认镜像国内无法访问,这里曲线救国:

  首先,将这个yaml文件下载下来:

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

  其次,通过vim编辑yaml文件中默认的镜像源地址:这里替换为李振良老师的镜像地址,感谢李振良老师。

    containers:  - name: kubernetes-dashboard    #image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1   image: lizhenliang/kubernetes-dashboard-amd64:v1.10.1

  然后,由于默认Dashboard只能集群内部访问,因此修改Service为NodePort类型,暴露到外部可以访问:

kind: Service
apiVersion: v1
metadata:   labels: k8s-app: kubernetes-dashboard   name: kubernetes-dashboard  namespace: kube-system
spec:   type: NodePort  ports:  - port: 443 targetPort: 8443    nodePort: 30001 selector:   k8s-app: kubernetes-dashboard

  最后,我们直接apply本地这个yaml文件来创建Dashboard:

kubectl apply -f kubernetes-dashboard.yaml

  看到提示“service/kubernetes-dashboard created”代表Dashboard创建成功了,这时我们通过浏览器来访问一下:

  

  这里如果你通过Chrome访问提示证书错误无法访问,可以通过如下步骤解决:

chrome://net-internals/#hsts

  找到Delete domain security policies,输入你的NodeIP地址点击Delete即可:

  

  接上一步,看到了登录界面,需要我们配置kubeconfig或输入token,这里我们选择后者,通过以下命令获取输出的token:

kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

  拿到token在登录界面的令牌区域输入,然后点击登录:

  

  即可进入下图所示的主界面了:

  

  在Dashboard中,我们通过kubectl所做的操作大部分都可以可视化操作,比如我们可以对deployment做伸缩:

  

  更多内容,请期待后续分享。

04

小结


本文通过部署一个ASP.NET Core WebAPI到K8S为例,介绍了K8S部署的详细过程步骤,最后部署Dashboard从而能够进行可视化的管理。后续会探索各种应用的运行方式和更多的内容,当然笔者也是初学,有很多不足之处,请多包涵。

参考资料:

(1)CloudMan,《每天5分钟玩转Kubernetes》

(2)李振良,《一天入门Kubernets教程》

(3)李振良,《30分钟部署一个Kubernetes集群》

(4)cao_xiaobo,《K8S部署Dashboard》


恰童鞋骚年,风华不再正茂,仍想挥斥方遒

点个在看少个bug ?

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

  1. ASP.NET Core on K8S深入学习(7)Dashboard知多少

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 在第二篇<部署过程解析与Dashboard>中介绍了如何部署Das ...

  2. ASP.NET Core on K8S深入学习(3)Deployment

    上一篇<部署过程解析与安装Dashboard>中我们了解K8S的部署过程,这一篇我们来了解一下K8S为我们提供的几种应用运行方式:Deployment.DaemonSet与Job,它们是K ...

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

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

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

    文章转载于公众号[恰同学骚年],作者Edison Zhou 上一篇<K8S集群部署>中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一 ...

  5. ASP.NET Core on K8S深入学习(11)K8S网络知多少

    Photo :Kubernetes 文 | Edison Zhou 本文已加入<.NET Core on K8S 学习与实践系列文章索引目录>,点击查看容器化相关文章,希望对你有所帮助! ...

  6. ASP.NET Core on K8S深入学习(10)K8S包管理器Helm-Part 2

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章.上一篇 Part 1 中介绍了Helm的基本概念与基本使用,这一篇我们来自定义一 ...

  7. ASP.NET Core on K8S深入学习(10)K8S包管理器Helm-Part 1

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 关于Helm Why Helm? 虽然K8S能够很好地组织和编排容器,但是缺少 ...

  8. ASP.NET Core on K8S深入学习(5)Rolling Update

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 01 - What is Rolling Update? 为了服务升级过程中提 ...

  9. ASP.NET Core on K8S深入学习(9)Secret Configmap

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 01 - Secret 关于Secret 在应用启动过程中需要一些敏感信息,比 ...

最新文章

  1. CF498C Array and Operations(数论 + 最大流)
  2. 类脑信息处理研究取得进展
  3. HTML5 基础知识(二)
  4. 动态给div追加html代码,javascript – 动态添加/删除div到html
  5. PHP 基础篇 - PHP 中 DES 加解密详解
  6. 基于C#的安全聊天工具设计
  7. 基于E4A的手机蓝牙串口助手app制作
  8. wincc提示项目管理器服务器不可用,Wincc新建文件时提示项目管理器 服务器不可用...
  9. 自定义滚动条、tbody加滚动条
  10. Latex beamer 主题和颜色大全
  11. 极点五笔状态栏和候选窗口显隐
  12. emui系统就是鸿蒙吗,华为EMUI是不是鸿蒙系统
  13. 新农慕课python答案、第七周_优学院《作业治疗》完整答案中国大学慕课《农作学》课后作业参考答案...
  14. CSDN - 盛洪宇(技术胖) - Vue2.x从入门到实战
  15. matlab 建模线性回归,MATLAB建模实现线性回归处理环境监测数据的探索及与EXCEL建模的对比...
  16. 处cp显示服务器开小差,我和影帝处CP最新章节叶扶予蔺洲叶扶予小说阅读
  17. 阿里数据中台七年演化史——行在口述干货
  18. 突发!美国贸易管制黑名单新增8家:商汤、旷视、海康威视等在列
  19. 巨龙信息大数据建模与分析技术浅析
  20. qq聊天机器人 群发工具 (java版) (一)

热门文章

  1. NetBeans Weekly News 刊号 # 27 - Sep 24, 2008
  2. Unity3D学习笔记之六创建更多的Prefab
  3. centos proftp_在CentOS上禁用ProFTP
  4. 如何在Microsoft Excel中将文本转换为日期值
  5. 汉克尔变换matlab,HankelTransform
  6. stop-hbase.sh一直处于等待状态
  7. 基于 HTML5 Canvas 绘制的电信网络拓扑图
  8. Nodejs Guides(四)
  9. 【转】 ConstraintLayout 完全解析 快来优化你的布局吧
  10. 2596 售货员的难题