Kubernetes指南
Linux性能优化实战
eBPF 核心技术与实战
SDN指南
个人博客
搜索文档…
中文
序言
基础入门
Kubernetes 简介
Kubernetes 基本概念
Kubernetes 101
Kubernetes 201
Kubernetes 集群
核心原理
核心原理
架构原理
设计理念
核心组件
etcd
kube-apiserver
kube-scheduler
kube-controller-manager
kubelet
kube-proxy
kube-dns
Federation
kubeadm
hyperkube
kubectl
资源对象
部署配置
部署指南
kubectl 安装
单机部署
特性开关
最佳配置
版本支持
集群部署
附加组件
Kubernetes-The-Hard-Way
插件扩展
API 扩展
访问控制
Scheduler 扩展
网络插件
运行时插件 CRI
存储插件
网络策略
Ingress Controller
Cloud Provider 扩展
Device 插件
服务治理
服务治理
Istio
Devops
实践案例
实践概览
资源控制
集群高可用
应用高可用
调试
端口映射
端口转发
用户管理
GPU
HugePage
安全
审计
备份恢复
证书轮换
大规模集群
大数据与机器学习
Serverless
排错指南
排错概览
集群排错
Pod 排错
网络排错
PV 排错
Windows 排错
云平台排错
排错工具
社区贡献
开发指南
单元测试和集成测试
社区贡献
附录
生态圈
学习资源
国内镜像
如何贡献
参考文档
由
GitBook
提供支持
kubeadm
kubeadm 是 Kubernetes 主推的部署工具之一,正在快速迭代开发中。
初始化系统
所有机器都需要初始化容器执行引擎(如 docker 或 frakti 等)和 kubelet。这是因为 kubeadm 依赖 kubelet 来启动 Master 组件,比如 kube-apiserver、kube-manager-controller、kube-scheduler、kube-proxy 等。
安装 master
在初始化 master 时,只需要执行 kubeadm init 命令即可,比如
1
kubeadm init --pod-network-cidr
10.244
.0.0/16 --kubernetes-version stable
Copied!
这个命令会自动
系统状态检查
生成 token
生成自签名 CA 和 client 端证书
生成 kubeconfig 用于 kubelet 连接 API server
为 Master 组件生成 Static Pod manifests,并放到
/etc/kubernetes/manifests
目录中
配置 RBAC 并设置 Master node 只运行控制平面组件
创建附加服务,比如 kube-proxy 和 kube-dns
配置 Network plugin
kubeadm 在初始化时并不关心网络插件,默认情况下,kubelet 配置使用 CNI 插件,这样就需要用户来额外初始化网络插件。
CNI bridge
1
mkdir
-p /etc/cni/net.d
2
cat
>
/etc/cni/net.d/10-mynet.conf
<<-
EOF
3
{
4
"cniVersion": "0.3.0",
5
"name": "mynet",
6
"type": "bridge",
7
"bridge": "cni0",
8
"isGateway": true,
9
"ipMasq": true,
10
"ipam": {
11
"type": "host-local",
12
"subnet": "10.244.1.0/24",
13
"routes": [
14
{"dst": "0.0.0.0/0"}
15
]
16
}
17
}
18
EOF
19
cat
>
/etc/cni/net.d/99-loopback.conf
<<-
EOF
20
{
21
"cniVersion": "0.3.0",
22
"type": "loopback"
23
}
24
EOF
Copied!
flannel
1
kubectl create -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel-rbac.yml
2
kubectl create -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml
Copied!
weave
1
kubectl apply -f
"https://cloud.weave.works/k8s/net?k8s-version=
$(
kubectl version
|
base64
|
tr
-d
'\n'
)
"
Copied!
calico
1
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
2
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml
Copied!
添加 Node
1
token
=
$(
kubeadm token list
|
grep
authentication,signing
|
awk
'{print $1}'
)
2
kubeadm
join
--token
$token
${master_ip}
Copied!
这包括以下几个步骤
从 API server 下载 CA
创建本地证书,并请求 API Server 签名
最后配置 kubelet 连接到 API Server
删除安装
1
kubeadm reset
Copied!
参考文档
kubeadm Setup Tool
以前
Federation
下一个
hyperkube
最近更新
2yr ago
复制链接
内容
初始化系统
安装 master
配置 Network plugin
CNI bridge
flannel
weave
calico
添加 Node
删除安装
参考文档