• kubeadm工作原理
    • 初始化系统
    • 安装master
    • 配置Network plugin
      • CNI bridge
      • flannel
      • weave
      • calico
    • 添加Node
    • 删除安装
    • 参考文档

    kubeadm工作原理

    初始化系统

    所有机器都需要初始化docker和kubelet。这是因为kubeadm依赖kubelet来启动Master组件,比如kube-apiserver、kube-manager-controller、kube-scheduler、kube-proxy等。

    安装master

    在初始化master时,只需要执行kubeadm init命令即可,比如

    1. 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

    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.0.0/16",
    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

    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

    weave

    1. kubectl apply -f https://git.io/weave-kube-1.6

    calico

    1. kubectl apply -f http://docs.projectcalico.org/v2.1/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml

    添加Node

    1. token=$(kubeadm token list | grep authentication,signing | awk '{print $1}')
    2. kubeadm join --token $token ${master_ip}

    这包括以下几个步骤

    • 从API server下载CA
    • 创建本地证书,并请求API Server签名
    • 最后配置kubelet连接到API Server

    删除安装

    1. kubeadm reset

    参考文档

    • kubeadm Setup Tool