k8s dashboard_ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard
文章转载于公众号【恰同学骚年】,作者Edison Zhou
上一篇《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: ServiceapiVersion: v1metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-systemspec: 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-systemkubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-adminkubectl 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》
恰童鞋骚年,风华不再正茂,仍想挥斥方遒
k8s dashboard_ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard相关推荐
- ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard
上一篇<K8S集群部署>中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制,然后部署一下Dashboard,完 ...
- Kubernetes (K8s) 安装部署过程(七)之部署node节点
部署前的准备 1).关闭swapp 功能否则kubelet启动将失败. vim /etc/fstab注释下面这行内容 /dev/mapper/cl-swap swap swap defaults 0 ...
- 文章目录 | .NET Core on K8s学习之旅 (更新至20200618)
.NET Core on K8s学习之旅 更新记录: -- 20200511 增加Ingress & Nginx Ingress介绍 -- 20200515 增加Ocelot API网关集成示 ...
- .NET Core on K8S 学习与实践系列文章索引 (更新至20191126)
更新记录: -- 2019-11-26 增加Docker容器日志系列文章 近期在学习Kubernetes,基于之前做笔记的习惯,已经写了一部分文章,因此给自己立一个flag:完成这个<.NET ...
- .NET Core on K8S学习实践系列文章索引(持续更新)
近期在学习Kubernetes,基于之前做笔记的习惯,已经写了一部分文章,因此给自己立一个2019年的flag:完成这个<.NET Core on K8S学习实践>系列文章!这个系列会持续 ...
- ASP.NET Core on K8S深入学习(3)Deployment
上一篇<部署过程解析与安装Dashboard>中我们了解K8S的部署过程,这一篇我们来了解一下K8S为我们提供的几种应用运行方式:Deployment.DaemonSet与Job,它们是K ...
- ASP.NET Core on K8S深入学习(7)Dashboard知多少
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 在第二篇<部署过程解析与Dashboard>中介绍了如何部署Das ...
- ASP.NET Core on K8s学习之旅(14)Ingress灰度发布
[云原生]| 作者/Edison Zhou 这是恰童鞋骚年的第236篇原创文章 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使用,然后我还录了一个快速分享小视频介绍了一 ...
- ASP.NET Core on K8s学习之旅(13)Ocelot API网关接入
[云原生]| 作者/Edison Zhou 这是恰童鞋骚年的第232篇原创文章 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使用,考虑到很多团队都在使用Ocelot作为 ...
最新文章
- keycloak mysql_Keycloak换mysql存储详细步骤
- 【微信小程序企业级开发教程】前台收集数据更新数据库表方法
- 叹西安2014中秋节雨天
- 伽卡他卡电子教室 百度百科_怎么创建人物百度百科?人物百度百科创作技巧...
- Eclipse中io操作提示找不到文件
- Apache RocketMQ 安装、测试、报错解决
- 大学生想依靠c/c++找工作,还需要什么知识?
- STM32F103 TIM4定时器
- 网页中多层效果的灵活使用
- 基于ObjectCache的应用
- 1.4 Linux文件系统与目录结构
- 使用PyTorch实现CNN
- 锐浪报表,用脚本处理字段
- 重装ubuntu16.04之搜狗拼音输入法
- graphpad prism怎么添加图例_如何用Graphpad prism添加多个图例
- 400 : perceived to be a client error 错误
- 转:firefox os 框架解析
- c语言爱心灯制作步骤,如何使用LED和555定时器制作闪烁爱心LED灯
- java 整型数组定义_在Java中定义一个具有10个元素的整型数组a的语句是:___
- Python编程之文本颜色设置
热门文章
- 以计算机为题写一篇英语作文,请以“未来的钢笔”为题写一篇不少于80词的英语作文...
- 第二模块:函数编程 第1章·文件处理、函数、装饰器、迭代器、内置方法
- hightcharts 3d 堆积图下钻
- jenkins使用流程
- 带你秒学JavaScript
- jquery版瀑布流
- CSS3实践之路(四):文本特效
- 培华学院2012届计算机专业多少人,西安培华学院学子在中国大学生计算机设计大赛中取得多个国奖...
- Emacs:报错:File error: Cannot open load file,cl-lib解决
- msm8953抓取audio kernel dsp log