前言

在上一节的学习中。我们已经可以通过最基本的 Docker Swarm 创建集群,然后在集群里面加入我们需要运行的任务 以及任务的数量 这样我们就创建了一个服务。 当然,这样的方式在我们本地虚拟机的情况下,完全适用,并且对于

  • 容器
  • 虚拟主机
  • swarm 创建节点组成集群

有一个很好的理解作用。本节将继续学习关于 Kubernetes (K8s) 的内容。

Kubernetes 建立在 Google 15年的生产工作负载管理经验的基础上,结合了来自社区的最佳理念和实践。

Kubernetes (K8s)

Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。

在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

节点与管理节点

在K8s 集群包括两种类型的资源

  • 普通节点 Node 一般用于服务
  • 管理节点 Master 用于管理其他节点

Master 管理节点

Master 负责管理集群。 主服务器协调集群中的所有活动,例如调度应用程序、维护应用程序的期望状态、缩放应用程序和推出新的更新。

Node 服务节点

Node 是作为 Kubernetes 集群中的工作机器的 VM 或物理计算机。 每个节点都有一个 Kubelet,它是管理节点和与 kubernets 主节点通信的代理。 节点还应该具有处理容器操作的工具,如 Docker

这个还是和在上一节当中学习的Swarm 虚拟机中通过 docker swarm init xx

其实还是有类似的地方的。

服务执行过程

当您在 Kubernetes 上部署应用程序时,您告诉主控程序启动应用程序容器。 主服务器安排容器在集群节点上运行。 节点使用主服务器公开的 Kubernetes API 与主服务器通信。 最终用户还可以直接使用 Kubernetes API 与集群交互。

windows 安装 kubectl 以及 minikube

若没有安装 Docker-toolbox 的同学请参考并安装:

https://blogs.chaobei.xyz/archives/docker6

下载 kubectl

Kubernetes 命令行工具 kubectl 允许您针对 Kubernetes 集群运行命令。 您可以使用 kubectl 部署应用程序、检查和管理集群资源以及查看日志。

https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/windows/amd64/kubectl.exe

修改名称为 kubectl.exe

复制到和docker-toolbox 一样的目录下,方便执行

$ kubectl.exe version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:20:10Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"windows/amd64"}

下载 minikube

https://github.com/kubernetes/minikube/releases/

选择合适的版本后,下载,并且修改名称为 minikube.exe 放到与上面一样的位置下。

$ minikube.exe version                                                                                                 minikube version: v1.7.2
commit: 50d543b5fcb0e1c0d7c27b1398a9a9790df09dfb

使用 minikube 创建集群

minikube start --image-repository=registry.aliyuncs.com/google_containers --registry-mirror=https://fime0zji.mirror.aliyuncs.com --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.7.0.iso
  • --image-repository 指定使用国内的镜像仓库
  • --registry-mirror 将指定的地址传递给虚拟机docker 作为拉取镜像的地址
  • --iso-url 指定minikubo 镜像的地址。

因为国内防火墙的限制,所以需要将发部分指定为国内地址才可以正常进行。


$ minikube start --image-repository=registry.aliyuncs.com/google_containers --registry-mirror=https://fime0zji.mirror.aliyuncs.com
* Microsoft Windows 10 Pro 10.0.18363 Build 18363 上的 minikube v1.7.2
* Automatically selected the virtualbox driver
* 正在使用镜像存储库 registry.aliyuncs.com/google_containers
* 正在创建 virtualbox 虚拟机(CPUs=2,Memory=2000MB, Disk=20000MB)...
* 找到的网络选项:
- NO_PROXY=192.168.99.100,192.168.99.102,192.168.99.103
- no_proxy=192.168.99.100,192.168.99.102,192.168.99.103
* 正在 Docker 19.03.5 中准备 Kubernetes v1.17.2…
- env NO_PROXY=192.168.99.100,192.168.99.102,192.168.99.103
- env NO_PROXY=192.168.99.100,192.168.99.102,192.168.99.103
* 正在启动 Kubernetes ...
* Enabling addons: default-storageclass, storage-provisioner
* 等待集群上线...
* 完成!kubectl 已经配置至 "minikube"

官网在线测试环境 https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/

可能遇到的问题

* 正在下载 kubectl v1.17.2
* 正在下载 kubeadm v1.17.2
* 正在下载 kubelet v1.17.2

它可能一直在下载,真的是一直在下,我第一次使用的时候,我足足等了一个小时,现在想起来真的是 MMP

DOCKER 学习笔记9 Kubernetes (K8s) 生产级容器编排 上的更多相关文章

  1. DOCKER 学习笔记9 Kubernetes (K8s) 弹性伸缩容器 下

    前言 从上一篇看来,我们已经对于Kubernetes ,通过minikube 建立集群,而后使用kubectl 进行交互,对Deployment 部署以及服务的暴露等.这节,将学习弹性的将服务部署到多 ...

  2. docker学习笔记:修改无法启动的容器中的内容

    我们可能会碰到这样的一个问题,在容器执行过程中,修改了容器的内容(如配置文件信息),但因为修改出了问题.导致容器关闭后,无法启动. 这事需要重新修改配置文件. 正常情况下可以通过 docker exe ...

  3. Docker学习笔记之浅谈虚拟化和容器技术

    0x00 概述 相信所有对 Docker 有所耳闻的朋友都知道,它是一款以容器虚拟化技术为基础的软件,因此在了解有关 Docker 的概念知识和使用方法之前,虚拟化和容器技术是我们不可或缺的基础知识. ...

  4. Docker学习笔记_创建和使用Centos容器

    实验:创建和使用Centos容器 步骤: 1.搜索                                                     sudo docker search cen ...

  5. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  6. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  7. Docker:学习笔记(1)——基础概念

    Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...

  8. Docker 学习笔记一

    Docker 学习笔记一 1.Docker是什么?         Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源.让开发者打包他们的应用以及依赖包到一 ...

  9. Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

    上一节演示如何安装Docker,链接:Docker学习笔记之-在CentOS中安装Docker 本节演示 将.net core 3.1 部署到docker容器当中,并使用 Nginx反向代理,部署平台 ...

随机推荐

  1. Hadoop中的Partitioner浅析

    转自:http://blog.csdn.net/b1198103958/article/details/47169105 Hadoop里面的MapReduce编程模型,非常灵活,大部分环节我们都可以重 ...

  2. surging 社区版本支持.net core 3.1

    简介 surging 经过两年多的研发,微服务引擎已经略有雏形,也承蒙各位的厚爱, GitHub上收获了将近2800星,fork 811,付费用户企业也有十几家,还有咨询培训, 在2020年,我们将依 ...

  3. 日志冲突解决方案(基于gradle)

    日志冲突解决方案 前提:我使用gradle管理项目 最近在项目中需要用curator客户端操作zookeeper,在maven仓库拉取的jar包导致日志冲突,会报以下的错误: 经常会有如上图2处红色框 ...

  4. 2018铁人三项测评题 IOS99

    下面这一部分是我从网上复制过来的, 2.IOS 解题链接:http://ctf4.shiyanbar.com/web/IOS/index.php 这题页面中提示系统升级到了IOS99,我们可以想到修改 ...

  5. 2019 年百度之星 初赛一 1002 Game

    传送门 Problem Description 度度熊在玩一个好玩的游戏.游戏的主人公站在一根数轴上,他可以在数轴上任意移动,对于每次移动,他可以选择往左或往右走一格或两格.现在他要依次完成 n 个任 ...

  6. 能快速理解Java_集合类_的文章

    目录 @ 这篇文章是我学习完Java集合类做的笔记和总结,如果你想认真细读这篇文章,请做好受虐的准备(建议电脑看),因为这篇文章有点长,ヽ(ー_ー)ノ. 如果在看我这篇文章过程中,发现了错误,望指点. ...

  7. KindEditor.ready 不执行的解决方法

    问题描述 按照官网的要求,一一都设置好了,但就是没法显示富文本编辑器. 1.设置好textarea输入框 <textarea id="myEditor" name=" ...

  8. vue 项目中运用到的插件 或者依赖安装

    1.安装less ,less-load npm install less less-loader --save-dev 2.安装vux npm install vux --save npm insta ...

  9. Scanner使用方法

    import java.util.Scanner; //导入包 public void main (String args[]){ Scanner a=new Scanner(System.in); ...

  10. Go Web 编程之 静态文件

    概述 在 Web 开发中,需要处理很多静态资源文件,如 css/js 和图片文件等.本文将介绍在 Go 语言中如何处理文件请求. 接下来,我们将介绍两种处理文件请求的方式:原始方式和http.File ...