58同城网站建设的不足,平面设计师是做什么,网站做支付,响应式企业网站上一篇《K8S集群部署》中搭建好了一个最小化的K8S集群#xff0c;这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制#xff0c;然后部署一下Dashboard#xff0c;完成可视化管理。本篇已加入了《.NET Core on K8S学习实践系列文章索引》#… 上一篇《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》一书。 1Kubectl发送部署请求到API Server 2API Server通知Controller Manager创建一个deployment资源 3Scheduler执行调度任务将两个Pod副本分发到k8s-node1与k8s-node2 4k8s-node1和k8s-node2上的kubectl在各自的节点上创建并运行Pod当然其中包括了拉取镜像创建容器等一系列操作另外的补充 1所有应用的配置和当前状态信息都会保存在etcd中执行kubectl get pod时API Server会从etcd中读取这些数据 2flannel会为每个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文件来创建Dashboardkubectl apply -f kubernetes-dashboard.yaml 看到提示“service/kubernetes-dashboard created”代表Dashboard创建成功了这时我们通过浏览器来访问一下 这里如果你通过Chrome访问提示证书错误无法访问可以通过如下步骤解决chrome://net-internals/#hsts 找到Delete domain security policies输入你的NodeIP地址点击Delete即可 接上一步看到了登录界面需要我们配置kubeconfig或输入token这里我们选择后者通过以下命令获取输出的tokenkubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrolecluster-admin --serviceaccountkube-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从而能够进行可视化的管理。后续会探索各种应用的运行方式和更多的内容当然笔者也是初学有很多不足之处请多包涵。参考资料1CloudMan《每天5分钟玩转Kubernetes》2李振良《一天入门Kubernets教程》3李振良《30分钟部署一个Kubernetes集群》4cao_xiaobo《K8S部署Dashboard》恰童鞋骚年风华不再正茂仍想挥斥方遒点个在看少个bug ?