深入剖析Kubernetes
张磊
Kubernetes社区资深成员与项目维护者
立即订阅
21376 人已学习
课程目录
已完结 56 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (5讲)
开篇词 | 打通“容器技术”的任督二脉
免费
01 | 预习篇 · 小鲸鱼大事记(一):初出茅庐
02 | 预习篇 · 小鲸鱼大事记(二):崭露头角
03 | 预习篇 · 小鲸鱼大事记(三):群雄并起
04 | 预习篇 · 小鲸鱼大事记(四):尘埃落定
容器技术概念入门篇 (5讲)
05 | 白话容器基础(一):从进程说开去
06 | 白话容器基础(二):隔离与限制
07 | 白话容器基础(三):深入理解容器镜像
08 | 白话容器基础(四):重新认识Docker容器
09 | 从容器到容器云:谈谈Kubernetes的本质
Kubernetes集群搭建与实践 (3讲)
10 | Kubernetes一键部署利器:kubeadm
11 | 从0到1:搭建一个完整的Kubernetes集群
12 | 牛刀小试:我的第一个容器化应用
容器编排与Kubernetes作业管理 (15讲)
13 | 为什么我们需要Pod?
14 | 深入解析Pod对象(一):基本概念
15 | 深入解析Pod对象(二):使用进阶
16 | 编排其实很简单:谈谈“控制器”模型
17 | 经典PaaS的记忆:作业副本与水平扩展
18 | 深入理解StatefulSet(一):拓扑状态
19 | 深入理解StatefulSet(二):存储状态
20 | 深入理解StatefulSet(三):有状态应用实践
21 | 容器化守护进程的意义:DaemonSet
22 | 撬动离线业务:Job与CronJob
23 | 声明式API与Kubernetes编程范式
24 | 深入解析声明式API(一):API对象的奥秘
25 | 深入解析声明式API(二):编写自定义控制器
26 | 基于角色的权限控制:RBAC
27 | 聪明的微创新:Operator工作原理解读
Kubernetes容器持久化存储 (4讲)
28 | PV、PVC、StorageClass,这些到底在说啥?
29 | PV、PVC体系是不是多此一举?从本地持久化卷谈起
30 | 编写自己的存储插件:FlexVolume与CSI
31 | 容器存储实践:CSI插件编写指南
Kubernetes容器网络 (8讲)
32 | 浅谈容器网络
33 | 深入解析容器跨主机网络
34 | Kubernetes网络模型与CNI网络插件
35 | 解读Kubernetes三层网络方案
36 | 为什么说Kubernetes只有soft multi-tenancy?
37 | 找到容器不容易:Service、DNS与服务发现
38 | 从外界连通Service与Service调试“三板斧”
39 | 谈谈Service与Ingress
Kubernetes作业调度与资源管理 (5讲)
40 | Kubernetes的资源模型与资源管理
41 | 十字路口上的Kubernetes默认调度器
42 | Kubernetes默认调度器调度策略解析
43 | Kubernetes默认调度器的优先级与抢占机制
44 | Kubernetes GPU管理与Device Plugin机制
Kubernetes容器运行时 (3讲)
45 | 幕后英雄:SIG-Node与CRI
46 | 解读 CRI 与 容器运行时
47 | 绝不仅仅是安全:Kata Containers 与 gVisor
Kubernetes容器监控与日志 (3讲)
48 | Prometheus、Metrics Server与Kubernetes监控体系
49 | Custom Metrics: 让Auto Scaling不再“食之无味”
50 | 让日志无处可逃:容器日志收集与管理
再谈开源与社区 (1讲)
51 | 谈谈Kubernetes开源社区和未来走向
答疑文章 (1讲)
52 | 答疑:在问题中解决问题,在思考中产生思考
特别放送 (1讲)
特别放送 | 2019 年,容器技术生态会发生些什么?
结束语 (1讲)
结束语 | Kubernetes:赢开发者赢天下
特别放送 | 云原生应用管理系列 (1讲)
基于 Kubernetes 的云原生应用管理,到底应该怎么做?
深入剖析Kubernetes
登录|注册

10 | Kubernetes一键部署利器:kubeadm

张磊 2018-09-14

你好,我是张磊。今天我和你分享的主题是:Kubernetes 一键部署利器之 kubeadm。

通过前面几篇文章的内容,我其实阐述了这样一个思想:要真正发挥容器技术的实力,你就不能仅仅局限于对 Linux 容器本身的钻研和使用。

这些知识更适合作为你的技术储备,以便在需要的时候可以帮你更快的定位问题,并解决问题。

而更深入的学习容器技术的关键在于,如何使用这些技术来“容器化”你的应用。

比如,我们的应用既可能是 Java Web 和 MySQL 这样的组合,也可能是 Cassandra 这样的分布式系统。而要使用容器把后者运行起来,你单单通过 Docker 把一个 Cassandra 镜像跑起来是没用的。

要把 Cassandra 应用容器化的关键,在于如何处理好这些 Cassandra 容器之间的编排关系。比如,哪些 Cassandra 容器是主,哪些是从?主从容器如何区分?它们之间又如何进行自动发现和通信?Cassandra 容器的持久化数据又如何保持,等等。

这也是为什么我们要反复强调 Kubernetes 项目的主要原因:这个项目体现出来的容器化“表达能力”,具有独有的先进性和完备性。这就使得它不仅能运行 Java Web 与 MySQL 这样的常规组合,还能够处理 Cassandra 容器集群等复杂编排问题。所以,对这种编排能力的剖析、解读和最佳实践,将是本专栏最重要的一部分内容。

© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《深入剖析Kubernetes》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(75)

  • Antergone
    有一个ansible playbook可以推荐给大家。
    https://github.com/gjmzj/kubeasz
    初学者可以跟着一步步看原理,后期还可以自己定制化。主要是容易产生兴趣。
    2018-09-14
    99
  • MiracleWong
    我也补充一个可用于部署生产级别的Kubernetes的开源项目:https://github.com/kubernetes-incubator/kubespray 我们公司正在使用。
    2018-09-16
    51
  • yandd
    推荐个k8s实验平台 https://console.magicsandbox.com,可能需要fan qiang才能访问
    2018-09-15
    1
    25
  • zz@zz
    kbueadm init 遇到问题的同学,可以从报错日志中获得需要的 镜像列表

    - No internet connection is available so the kubelet cannot pull or find the following control plane images:
                                    - k8s.gcr.io/kube-apiserver-amd64:v1.11.4
                                    - k8s.gcr.io/kube-controller-manager-amd64:v1.11.4
                                    - k8s.gcr.io/kube-scheduler-amd64:v1.11.4
                                    - k8s.gcr.io/etcd-amd64:3.2.18
                                    - You can check or miligate this in beforehand with "kubeadm config images pull" to make sure the images

    或者使用如下命令
    kubeadm config images list

    然后使用下边的脚本拉镜像并tag成指定Google的镜像

    images=(
        k8s.gcr.io/kube-apiserver-amd64:v1.11.4
        k8s.gcr.io/kube-controller-manager-amd64:v1.11.4
        k8s.gcr.io/kube-scheduler-amd64:v1.11.4
        k8s.gcr.io/kube-proxy-amd64:v1.11.4
        k8s.gcr.io/pause:3.1
        k8s.gcr.io/etcd-amd64:3.2.18
        k8s.gcr.io/coredns:1.1.3
    )

    for imageName in ${images[@]} ; do
        docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
        docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
    done

    2018-11-03
    24
  • 张应罗
    其实国内同学们用kubeadm安装集群最大的拦路虎在于有几个镜像没法下载,我建议大家先手动把镜像pull 下来,从阿里的镜像源上,然后tag成安装所需的镜像名称,这样你发现安装过程会异常顺利

    作者回复: 没错。kubeadm拉取镜像的url是可配置的。

    2018-09-21
    20
  • alex
    对墙经验丰富的人来了,可以用下面这个镜像
    https://github.com/anjia0532/gcr.io_mirror

    作者回复: 你好,楼道门开一下。

    2018-09-26
    13
  • 一叶
    我们的生产环境是二进制安装的,把安装步骤写成脚本就会方便很多,分享一个二进制安装脚本:
    https://github.com/SongCF/kubesh
    2018-09-23
    11
  • blackpiglet
    1. Linux 下生成证书,主流的选择应该是 OpenSSL,还可以使用 GnuGPG,或者 keybase。
    2. Kubernetes 组件之间的交互方式:HTTP/HTTPS、gRPC、DNS、系统调用等。

    作者回复: 看来是搞过证书啊

    2018-09-20
    1
    11
  • 乐生
    apt-get install kubeadm
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Unable to locate package kubeadm

    Ubuntu 18.04.1 LTS

    2018-10-18
    1
    10
  • 宝仔
    etcd可以先部署,然后初始化的时候通过kubeadm.yaml指定已经部署好的etcd。高可用可以通过部署三个master节点来解决!现在有个问题,通过kubeadm部署生成的apiserver证书默认有效期是一年,官方是认为需要通过kubeadm upgrade 每年升级一次kubernetes,升级的时候也会更新证书,请问老师这个有解决方法吗?

    作者回复: HA的etcd也是可以用kubeadm部署的,当然,external etcd有助于你自己做运维。你可以直接改证书生成的步骤,但我当然推荐你执行upgrade,这个操作是必须的。

    2018-09-15
    9
  • 包治结巴
    张老师,后面能讲讲怎么用二进制部署kubernetes吗?毕竟kubeadm不适用于生产环境,用二进制部署还是挺复杂的,恳请老师不吝讲解一下吧。

    作者回复: 我不建议直接使用二进制文件部署。而建议你花时间了解一下kubeadm的高可用部署,它现在已经初具雏形了。宝贵的时间应该用在刀刃上。

    2018-09-14
    9
  • 愤怒的大鸟
    生产用kubeadm安装的,一年后证书过期了,服务会受影响吗?有点怕
    2018-11-17
    1
    6
  • 健康
    老师 minikuke和kubeadm有什么区别吗

    作者回复: 前者是本地玩玩用的

    2018-10-24
    6
  • 志远
    kubernetes 原来是一个芬兰的高中生写的,不禁让我想起祖师爷 linus 也是芬兰人,哎~
    2018-09-15
    1
    6
  • eden
    一周更新三章,有点迫不及待了。不过讲得确实不错,期待后面更精彩的内容。想请教一个问题,你怎么看待openstack和k8s的关系,哪个技术门槛更高,为什么现在公司更倾向于用k8s来实现自己的云,而openstack有被k8s取代的趋势。

    作者回复: 当然是openstack门槛更高。90%用户要的是paas。

    2018-09-14
    5
  • 咕噜男爵
    第一时间阅读更新,有种追剧的感觉!!!
    2018-09-14
    5
  • rOMEo罗密欧
    请问一下在MacBook上安装部署k8s要怎么做?

    作者回复: minikube

    2018-11-24
    4
  • eden
    有个开源项目kubespray,支持k8s高可用部署,利用ansible来实现,这个项目部署的集群可以用于生产吧
    2018-09-14
    4
  • pytimer
    制作证书的工具: cfssl openssl easyrsa

    作者回复: 赞。而是这些工具的共同点就是,难用,不够傻瓜……

    2018-09-14
    4
  • TONNY
    解决拉取google镜像问题,有两种方式推荐
    1. 拉取hub.docker上gcrxio同步的k8s镜像到本地修改repository为k8s.gcr.io后,使用kubeadmin顺利安装
    2. 使用阿里的容器镜像服务,拉取hub.docker上gcrxio同步的k8s镜像推送到你的镜像库中。安装时,kubeadm init with a configuration file,在configuration file中修改相关的镜像地址为阿里容器服务的镜像地址
    2019-02-15
    3
收起评论
75
返回
顶部