Win10上的Docker应用:Kubernetes(容器集群)
阅读目录:
前言:
终于出第三篇了,上个月就已经弄好了,一直没弄上来,步入正题之前有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版本
kubectl version

三、部署web镜像
1、新建WebMVC项目,修改HomeController

public class HomeController : Controller
{
public IActionResult Index()
{
ViewData["Message"] = string.Format("IP:{0}", Dns.GetHostAddresses(Dns.GetHostName()).FirstOrDefault()); return View();
} ....
}

2、编写Dockerfile

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /app # copy csproj and restore as distinct layers
COPY *.sln .
COPY WebApp-HelloWorld/*.csproj ./WebApp-HelloWorld/
RUN dotnet restore # copy everything else and build app
COPY WebApp-HelloWorld/. ./WebApp-HelloWorld/
WORKDIR /app/WebApp-HelloWorld
RUN dotnet publish -c Release -o out FROM microsoft/dotnet:2.1-aspnetcore-runtime AS runtime
WORKDIR /app
COPY --from=build /app/WebApp-HelloWorld/out ./
ENTRYPOINT ["dotnet", "WebApp-HelloWorld.dll"]

运行 docker build -t helloworld . ,要先创建镜像,后边的kubernete才能用
3、编写kubernete-web-pod.yaml

apiVersion: v1
kind: Pod
metadata:
name: kubernete-web-pod
labels:
app: kubernete-web-pod
spec:
containers:
- name: helloworld
image: helloworld
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80

4、创建Pod
kubectl create -f kubernete-web-pod.yaml
2 kubectl get pod

5、暴露容器地址
kubectl port-forward kubernete-web-pod 8010:80

6、浏览器访问

搞定!
四、容器集群
1、创建 kubernete-web-replicaset.yaml

apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: kubernete-web-replicaset
spec:
replicas: 3 # pod实例的个数
selector:
matchLabels: # 标签名称
app: kubernete-web-pod
template:
metadata:
labels:
app: kubernete-web-pod
spec:
containers:
- name: kubernete-web-replicaset
image: helloworld
imagePullPolicy: IfNotPresent

2、执行指令
kubectl create -f kubernete-web-replicaset.yaml

3、创建Service统一入口
kubectl expose replicaset kubernete-web-replicaset --type=loadBalancer --port=8020 --target-port=80 --name kubernete-web-service

这样就构成了集群负载均衡了,我们在浏览器上试试
3、开3个窗口http://localhost:8020/



大功告成!。。。。。回家
出处:https://www.cnblogs.com/lanxiaoke/p/10712351.html
Win10上的Docker应用:Kubernetes(容器集群)的更多相关文章
- Kubernetes容器集群管理环境 - Prometheus监控篇
一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...
- Kubernetes容器集群管理环境 - 完整部署(中篇)
接着Kubernetes容器集群管理环境 - 完整部署(上篇)继续往下部署: 八.部署master节点master节点的kube-apiserver.kube-scheduler 和 kube-con ...
- Kubernetes容器集群管理环境 - 完整部署(下篇)
在前一篇文章中详细介绍了Kubernetes容器集群管理环境 - 完整部署(中篇),这里继续记录下Kubernetes集群插件等部署过程: 十一.Kubernetes集群插件 插件是Kubernete ...
- 搭建Kubernetes容器集群管理系统
1.Kubernetes 概述 Kubernetes 是 Google 开源的容器集群管理系统,基于 Docker 构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.劢态扩缩容等功能套件. 基 ...
- Kubernetes容器集群管理环境 - 完整部署(上篇)
Kubernetes(通常称为"K8S")是Google开源的容器集群管理系统.其设计目标是在主机集群之间提供一个能够自动化部署.可拓展.应用容器可运营的平台.Kubernetes ...
- Kubernetes——容器集群
kuberneteskubernetes(k8s)是google的容器集群管理系统,在docker的基础之上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整的功能,提高了大规模容 ...
- docker学习6-docker-compose容器集群编排
前言 实际工作中我们部署一个应用,一般不仅仅只有一个容器,可能会涉及到多个,比如用到数据库,中间件MQ,web前端和后端服务,等多个容器. 我们如果一个个去启动应用,当项目非常多时,就很难记住了,所有 ...
- Kubernetes容器集群管理环境 - Node节点的移除与加入
一.如何从Kubernetes集群中移除Node比如从集群中移除k8s-node03这个Node节点,做法如下: 1)先在master节点查看Node情况 [root@k8s-master01 ~]# ...
- 在 Kubernetes 容器集群,微服务项目最佳实践
转载自:https://mp.weixin.qq.com/s/WYu3gDwKKf06f_FYbO9YRg 本文主要介绍我个人在使用 Kubernetes 的过程中,总结出的一套「Kubernetes ...
- Kubernetes容器集群 - harbor仓库高可用集群部署说明
之前介绍Harbor私有仓库的安装和使用,这里重点说下Harbor高可用集群方案的部署,目前主要有两种主流的Harbor高可用集群方案:1)双主复制:2)多harbor实例共享后端存储. 一.Harb ...
随机推荐
- [Gamma]阶段发布说明
小小易校园微信小程序发布说明 第二版小小易校园小程序发布啦~ 打开微信,点击右上角➕,选择扫一扫,扫描以下二维码即可进入小程序: 版本功能: 上一版功能请参见[Beta阶段]发布说明. 当前版本的更新 ...
- IE 浏览器设置 打开新的选项卡而不是弹出窗口
首先打开IE的页面 找到工具 —点击Internet选项
- 配置opencv cmake
第一种使用 find_package的方法示例代码如下:# 声明要求的 cmake 最低版本cmake_minimum_required( VERSION 2.8 ) # 声明一个 cmake 工程p ...
- day60——单表操作补充(批量插入、查询、表结构)
day60 批量插入(bulk_create) # bulk_create obj_list = [] for i in range(20): obj = models.Book( title=f'金 ...
- 【题解】Kathy函数 [BZOJ1223] [P2235] [HNOI2002]
[题解]Kathy函数 [BZOJ1223] [P2235] [HNOI2002] 这几疯狂刷了数位\(dp\)的题,到这道题时被卡了一天,一看大佬的讲解发现居然是求回文数╮(╯_╰)╭ 感觉被大佬狠 ...
- GoF的23种设计模式之行为型模式的特点和分类(1)
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配. 行为型模式分为类行为模式和对象行为模式,前者采用继 ...
- 【mysql】获取某个表所有列名【mybatis】
方法1:[仅指定表名] select COLUMN_NAME from information_schema.COLUMNS where table_name = 'your-table-name'; ...
- 使用PS打开图片的常见姿势
我们经常会使用PS对现有的图片进行编辑.所以每个人都会经历打开图片这一步骤. 下面为大家介绍一下PS打开图片的这一步的常见方式吧: 第一种:使用文件资源管理器(也就是双击我的电脑弹出来的窗口) 第二种 ...
- delphi 格式转换
TO_CHAR 是把日期或数字转换为字符串 TO_DATE 是把字符串转换为数据库中得日期类型转换函数TO_NUMBER 将字符转化为数字 TO_CHAR 使用TO_CHAR函数处理数字 TO_CHA ...
- C#实现服务器间文件同步
using System.IO; /// <summary> /// 远程登陆服务器 /// </summary> /// <param name="remot ...