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!

参考文档

最近更新 2yr ago