阅读目录:

前言:

  终于出第三篇了,上个月就已经弄好了,一直没弄上来,步入正题之前有3个建议给想要学习Kubernetes的同学。

  1、在国内因为防火墙的原因,你是不可能在Docker上在线开启的Kubernetes功能的。所以如果你会fan qiang上网,那万事大吉。

  2、如果你离香港澳门比较近,那建议你周末抽空过去一趟,上午买罐奶粉,在店里吃个便餐顺便上网把Kubernetes功能开启了,

一天时间不用。又能旅游散心、又把事情办了,一举多得,还是万事大吉。

  3、如果上面2种你都没有条件,那真的很遗憾,你要控制住你的双手,一不注意,你可能会把电脑砸掉。还要准备菊花茶,清热解毒

以免怒火攻心长痘痘,板蓝根小柴胡也要买点,不然你气愤身体忽冷忽热的容易感冒。

  好了,说这些是想告诉你,你如果不能在线开启Kubernetes功能,那将浪费很多很多。。的时间,别人不知道,反正我就是断断续续的

加起来可能至少2个星期才完成。而且我后边也不会把解决过程发出来,太罗嗦,有怒气你们直接怼防火墙就对了,机智.jpg

一、Kubernetes简单介绍

1、Kubernetes简单点说就是关于Docker的集群方案,具体介绍请可以点击这里在之前2章中都只是介绍了单机、单运用的开发情况,但是

很明显这是不够的,互联网时代,一个完整的系统可能由几十、几百个子系统组成,这不可能都部署在一台机器上,所以单机单应用的Docker

部署方案最多运用在企业内部小系统上,超出这个范围就要考虑docker集群了,这就引出Kubernetes,他就是专为Docker集群而生的。

2、Kubernetes功能模块可以分为:

  • Container(容器)
  • Pod(容器组)
  • Label(标签)
  • Replication Controller(复制控制器)
  • Service(服务)
  • Node(节点)
  • Kubernetes Master(Kubernetes主节点)

  Container、Pod这2个都是关于容器的,比较好理解,Label可以理解为对Pod的标识,

  Replication Controller则是实现Pod拷贝的功能,负载均衡应该就是他完成的,Node(节点),Kubernetes Master(Kubernetes主节点)

  比较好理解,主要是yaml格式编写要熟练,后续讲到。

3、Kubernetes模块图示,直接摘抄了啊

 二、开启Kubernetes

1、先来看看,Kubernetes启动成功后是有2个running的,启动失败那个Kubernetes会一直提示 “** is starting”,直到永远。

2、验证一下,在PowerShell中输入以下指令查看Kubernete版本

  1. kubectl version

 三、部署web镜像

1、新建WebMVC项目,修改HomeController

  1. public class HomeController : Controller
  2. {
  3. public IActionResult Index()
  4. {
  5. ViewData["Message"] = string.Format("IP:{0}", Dns.GetHostAddresses(Dns.GetHostName()).FirstOrDefault());
  6.  
  7. return View();
  8. }
  9.  
  10. ....
  11. }

2、编写Dockerfile

  1. FROM microsoft/dotnet:2.1-sdk AS build
  2. WORKDIR /app
  3.  
  4. # copy csproj and restore as distinct layers
  5. COPY *.sln .
  6. COPY WebApp-HelloWorld/*.csproj ./WebApp-HelloWorld/
  7. RUN dotnet restore
  8.  
  9. # copy everything else and build app
  10. COPY WebApp-HelloWorld/. ./WebApp-HelloWorld/
  11. WORKDIR /app/WebApp-HelloWorld
  12. RUN dotnet publish -c Release -o out
  13.  
  14. FROM microsoft/dotnet:2.1-aspnetcore-runtime AS runtime
  15. WORKDIR /app
  16. COPY --from=build /app/WebApp-HelloWorld/out ./
  17. ENTRYPOINT ["dotnet", "WebApp-HelloWorld.dll"]

运行 docker build -t helloworld . ,要先创建镜像,后边的kubernete才能用

3、编写kubernete-web-pod.yaml

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: kubernete-web-pod
  5. labels:
  6. app: kubernete-web-pod
  7. spec:
  8. containers:
  9. - name: helloworld
  10. image: helloworld
  11. imagePullPolicy: IfNotPresent
  12. ports:
  13. - containerPort: 80

4、创建Pod

  1. kubectl create -f kubernete-web-pod.yaml
    2 kubectl get pod

5、暴露容器地址

  1. kubectl port-forward kubernete-web-pod 8010:80

6、浏览器访问

搞定!

四、容器集群

1、创建 kubernete-web-replicaset.yaml

  1. apiVersion: apps/v1
  2. kind: ReplicaSet
  3. metadata:
  4. name: kubernete-web-replicaset
  5. spec:
  6. replicas: 3 # pod实例的个数
  7. selector:
  8. matchLabels: # 标签名称
  9. app: kubernete-web-pod
  10. template:
  11. metadata:
  12. labels:
  13. app: kubernete-web-pod
  14. spec:
  15. containers:
  16. - name: kubernete-web-replicaset
  17. image: helloworld
  18. imagePullPolicy: IfNotPresent

2、执行指令

  1. kubectl create -f kubernete-web-replicaset.yaml

3、创建Service统一入口

  1. kubectl expose replicaset kubernete-web-replicaset --type=loadBalancer --port=8020 --target-port=80 --name kubernete-web-service

这样就构成了集群负载均衡了,我们在浏览器上试试

3、开3个窗口http://localhost:8020/

大功告成!。。。。。回家

Docker应用:Kubernetes(容器集群)的更多相关文章

  1. Kubernetes容器集群管理环境 - Prometheus监控篇

    一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...

  2. Kubernetes容器集群管理环境 - 完整部署(中篇)

    接着Kubernetes容器集群管理环境 - 完整部署(上篇)继续往下部署: 八.部署master节点master节点的kube-apiserver.kube-scheduler 和 kube-con ...

  3. Kubernetes容器集群管理环境 - 完整部署(下篇)

    在前一篇文章中详细介绍了Kubernetes容器集群管理环境 - 完整部署(中篇),这里继续记录下Kubernetes集群插件等部署过程: 十一.Kubernetes集群插件 插件是Kubernete ...

  4. 搭建Kubernetes容器集群管理系统

    1.Kubernetes 概述 Kubernetes 是 Google 开源的容器集群管理系统,基于 Docker 构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.劢态扩缩容等功能套件. 基 ...

  5. Kubernetes容器集群管理环境 - 完整部署(上篇)

    Kubernetes(通常称为"K8S")是Google开源的容器集群管理系统.其设计目标是在主机集群之间提供一个能够自动化部署.可拓展.应用容器可运营的平台.Kubernetes ...

  6. Kubernetes——容器集群

    kuberneteskubernetes(k8s)是google的容器集群管理系统,在docker的基础之上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整的功能,提高了大规模容 ...

  7. docker学习6-docker-compose容器集群编排

    前言 实际工作中我们部署一个应用,一般不仅仅只有一个容器,可能会涉及到多个,比如用到数据库,中间件MQ,web前端和后端服务,等多个容器. 我们如果一个个去启动应用,当项目非常多时,就很难记住了,所有 ...

  8. Kubernetes容器集群管理环境 - Node节点的移除与加入

    一.如何从Kubernetes集群中移除Node比如从集群中移除k8s-node03这个Node节点,做法如下: 1)先在master节点查看Node情况 [root@k8s-master01 ~]# ...

  9. 在 Kubernetes 容器集群,微服务项目最佳实践

    转载自:https://mp.weixin.qq.com/s/WYu3gDwKKf06f_FYbO9YRg 本文主要介绍我个人在使用 Kubernetes 的过程中,总结出的一套「Kubernetes ...

  10. 10分钟搭建Kubernetes容器集群平台【转】

    官方提供3种方式部署Kubernetes minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境 ...

随机推荐

  1. Python基础-python流程控制之循环结构(五)

    循环结构 循环结构可以减少源程序重复书写的代码量,用来描述重复执行某段算法的问题. Python中循环结构分为两类,分别是 while 和 for .. in. 一.while循环 格式1: whil ...

  2. Unity3D 物体移动方法总结

    1. 简介 在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在 ...

  3. layerweb弹层组件(SSH框架下)

    action类 这里主要看业务方法中表单路径中的(isClose = "1";return resUri;) public class MaterialsAction extend ...

  4. impala操作hase、hive

    impala中使用复杂类型(Hive):    如果Hive中创建的表带有复杂类型(array,struct,map),且储存格式(stored as textfile)为text或者默认,那么在im ...

  5. Similarity measure

    1. https://blog.csdn.net/m0_37676632/article/details/68936157 2. https://www.cnblogs.com/pinard/p/62 ...

  6. 201621123002《java程序设计》第十三周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网 ...

  7. MySQL 聚合函数 控制流程函数

    常用的聚合函数 1. AVG() 求平均值 mysql> AVG([DISTINCT] expr) -- 返回 expr 的平均值 mysql> select AVG(age) from ...

  8. GUI学习之十——QFrame和的QAbstractScrollArea学习总结

    上一章我们学习了单行的文本框QLineEdit类,下面我们要为多行的文本框的学习坐下准备,总结一下QFrame类和QAbstractScrollArea类 一.QFrame类 1.描述 QFrame的 ...

  9. tp3

    入口文件:index.php目录结构:核心,Thinkphp 公共资源,public jq 上传的图片等 应用目录,application 房模块 common:基于模块的公共目录,公共函数命名:类: ...

  10. 【此处有干货~】jmeter+ant+jenkins持续集成配置及过程中问题解决思路

    本人是一枚工作近三年的小测试,大学正好专业为软件测试,在工作中用到最多的是功能测试.接口测试.压力测试.偶尔会涉及到性能测试......(小白,很多观念技术跟大佬差距太大,勿喷) 在接口测试过程当中, ...