千家信息网

【读书笔记】10 Kubernetes一键部署利器 kubeadm

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,《深入剖析Kubernetes - 09 从容器到容器云 谈谈Kubernetes的本质》kubeadm 简化部署操作,仅需要以下2个操作即可创建一个k8s 集群# 创建一个 Master 节点$ k
千家信息网最后更新 2026年11月01日【读书笔记】10 Kubernetes一键部署利器 kubeadm

《深入剖析Kubernetes - 09 从容器到容器云 谈谈Kubernetes的本质》

kubeadm 简化部署操作,仅需要以下2个操作即可创建一个k8s 集群

# 创建一个 Master 节点$ kubeadm init# 将一个 Node 节点加入到当前集群中$ kubeadm join


k8s 每个组件都是一个独立的二进制文件,部署过程无非就是将二进制跟配置文件分布到指定机器,并通过脚本启停进程,这些工作在物理机时代完全可以通过saltstack 或者ansible 来完成,但后续运维成本会比较高,得自己实现进程监控,健康检查等等。

既然k8s 做服务编排,自然可以解决服务发现,服务注册,健康检查等功能。

具体方法是,master机器上 先手动在机器上安装kubeadm、kubelet、kubectl 这3个二进制文件;

而node 节点上面则只需要安装kubelet / kubeadm 然后通过kubeadm join 添加到集群内部即可

一、kubeadm init 工作流程

(1)检查机器环境是否满足

1、linux内核是否3.10 以上

2、cgroups 模块是否启用

3、hostname 是否符合标准(遵循DNS命名规则)

4、kubeadm 和 kubelet 版本是否匹配

5、是否已安装kubernetes 二进制文件

6、10250/10251/10252 等端口是否被占用

7、ip、mount 等指令是否存在

8、docker 是否安装

... ...


(2)生成kubernetes 对外提供服务所需证书和对应目录

默认放在/etc/kubernetes/pki 目录下

主要有ca.crt / ca.key

apiserver-kubelet-client.crt / apiserver-kubelet-client.key


(3)为master组件生成Pod 配置文件

即api-server、scheduler、controller-manager 以static-pod 方式部署

static-pod 允许将yaml 文件放在指定目录,在kubelet 启动时指定该目录,此时它会自动检查该目录并加载所有pod yaml文件并启动相应pod


为什么要用static pod?

刚创建集群的时候,上面并没有api-server 、kubectl ,无法创建相关的pod,故只能通过这种方式启动pod。

master 组件yaml文件生成目录为:/etc/kubernetes/manifests

ls /etc/kubernetes/manifests/etcd.yaml  kube-apiserver.yaml  kube-controller-manager.yaml  kube-scheduler.yaml


这里有个api-server.yaml 的例子:

apiVersion: v1kind: Podmetadata:  annotations:    scheduler.alpha.kubernetes.io/critical-pod: ""  creationTimestamp: null  labels:    component: kube-apiserver    tier: control-plane  name: kube-apiserver  namespace: kube-systemspec:  containers:  - command:    - kube-apiserver    - --authorization-mode=Node,RBAC    - --runtime-config=api/all=true    - --advertise-address=10.168.0.2    ...    - --tls-cert-file=/etc/kubernetes/pki/apiserver.crt    - --tls-private-key-file=/etc/kubernetes/pki/apiserver.key    image: k8s.gcr.io/kube-apiserver-amd64:v1.11.1    imagePullPolicy: IfNotPresent    livenessProbe:      ...    name: kube-apiserver    resources:      requests:        cpu: 250m    volumeMounts:    - mountPath: /usr/share/ca-certificates      name: usr-share-ca-certificates      readOnly: true    ...  hostNetwork: true  priorityClassName: system-cluster-critical  volumes:  - hostPath:      path: /etc/ca-certificates      type: DirectoryOrCreate    name: etc-ca-certificates  ...


通过这么一个yaml配置文件,告诉k8s 创建相应的api object , 这个api对象定义参考上述yaml 文件


(4)为该集群生成bootstrap token

供worknode 节点 通过kubeadm join 加入到该集群


(5)安装默认插件

例如kube-proxy / dns (以容器的方式部署)


二、kubeadm join 工作流程

为了方便部署操作,不需要手动从master 上面拷贝证书到每台worknode , kubeadm 至少需要发起一次"不安全模式" 的访问到api-server,从而拿到保存在configmap中的cluster-info,而bootstrap token 扮演的就是这个过程中安全验证的角色。


三、指定kubeadm 部署参数

$ kubeadm init --config kubeadm.yaml

在kubeadm.yaml 配置文件中定义

PS:kubeadm 的不足之处在于,它并没有解决像etcd 、master 等组件的高可用部署,而是单点部署。


文件 目录 集群 二进制 机器 组件 节点 服务 检查 生成 配置 容器 方式 工作 健康 安全 就是 工作流程 流程 证书 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 百单网互联网科技有限公司怎么样 哈尔滨大商圈互联网科技有限公司 华宇互联网科技 互联网科技股票 互联网金融科技平台 撒么互联网科技公司 滨湖区互联网智能科技产品供应 互联网科技公司招聘 中国科技互联网公司收入 北京华百购互联网科技有限公司 广州市恰铎互联网科技有限公司 链环科技传统企业怎么转型互联网 互联网科技研发水平 健康食品互联网创新科技园项目 西安小鹰速贷互联网科技有限公司 富国互联网金融科技混合基金 福州德业互联网科技 广西泛欧互联网科技有限公司 互联网科技品牌 中关村互联网 科技集团 蓝思科技飞鸽互联网 互联网科技行业发展 互联网金融科技公司干啥的 湖北码尼互联网科技有限公司电话 浙江互联网科技研学营 华夏互联网科技业 深圳市优智互联网科技有限公司 工业互联网科技创业 恒生科技指数 中概互联网
0