update link

pull/478/head
Jimmy Song 2022-05-27 06:49:17 +08:00
parent 6f4f2166ef
commit 9466deed49
No known key found for this signature in database
GPG Key ID: CBA666E6EF8B2C3A
4 changed files with 2 additions and 102 deletions

View File

@ -23,7 +23,7 @@ Kubernetes 的目标不仅仅是一个编排系统,而是提供一个规范用
Kubernetes Handbook 项目始于 2016 年底,开源于 2017 年 3 月,作为第一本系统介绍 Kubernetes 的中文电子书,其后经过不断完善。写作本书的过程中,笔者记录了从零开始学习和使用 Kubernetes 的历程,着重于经验总结和资料分享,亦有 Kubernetes 核心概念解析,希望能够帮助大家少走弯路,为大家介绍 Kubernetes 周边生态如微服务、DevOps、大数据应用、[服务网格](https://jimmysong.io/blog/what-is-a-service-mesh/)、云原生应用、Serverless 等领域。
更多云原生内容请访问[云原生资料库](https://jimmysong.io/docs/)。
更多云原生内容请访问[云原生资料库](https://lib.jimmysong.io)。
### 开始之前

View File

@ -6,7 +6,7 @@
"links": {
"sidebar": {
"回到主页": "https://jimmysong.io",
"云原生资料库": "https://jimmysong.io/docs/",
"云原生资料库": "https://lib.jimmysong.io",
"云原生开源项目大全": "https://jimmysong.io/awesome-cloud-native/",
"云原生社区": "https://cloudnative.to"
}

View File

@ -1,100 +0,0 @@
# kubeadm工作原理
## 初始化系统
所有机器都需要初始化docker和kubelet。这是因为kubeadm依赖kubelet来启动Master组件比如kube-apiserver、kube-manager-controller、kube-scheduler、kube-proxy等。
## 安装master
在初始化master时只需要执行kubeadm init命令即可比如
```sh
kubeadm init kubeadm init --pod-network-cidr 10.244.0.0/16 --kubernetes-version latest
```
这个命令会自动
- 系统状态检查
- 生成token
- 生成自签名CA和可独断证书
- 生成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
```sh
mkdir -p /etc/cni/net.d
cat >/etc/cni/net.d/10-mynet.conf <<-EOF
{
"cniVersion": "0.3.0",
"name": "mynet",
"type": "bridge",
"bridge": "cni0",
"isGateway": true,
"ipMasq": true,
"ipam": {
"type": "host-local",
"subnet": "10.244.0.0/16",
"routes": [
{ "dst": "0.0.0.0/0" }
]
}
}
EOF
cat >/etc/cni/net.d/99-loopback.conf <<-EOF
{
"cniVersion": "0.3.0",
"type": "loopback"
}
EOF
```
### flannel
```sh
kubectl create -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel-rbac.yml
kubectl create -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml
```
### weave
```sh
kubectl apply -f https://git.io/weave-kube-1.6
```
### calico
```sh
kubectl apply -f http://docs.projectcalico.org/v2.1/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
```
## 添加Node
```sh
token=$(kubeadm token list | grep authentication,signing | awk '{print $1}')
kubeadm join --token $token ${master_ip}
```
这包括以下几个步骤
- 从API server下载CA
- 创建本地证书并请求API Server签名
- 最后配置kubelet连接到API Server
## 删除安装
```
kubeadm reset
```
## 参考文档
- [kubeadm Setup Tool](https://kubernetes.io/docs/admin/kubeadm/)

BIN
images/cover.jpg 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB