保证已经安装docker

先使用 aliyun 的 k8s 源安装 kubeadm 和相关命令行工具

  • kubelet 负责节点维护pod
  • kubeadm 操作 k8s (init、reset、join 加入节点)
  • kubectl 和使用者交互,发送执行命令
    1. apt-get update && apt-get install -y apt-transport-https
    2. curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
    3. echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
    4. apt-get update
    5. apt-get install -y kubelet kubeadm kubectl

    对于 ubuntu ,需要修改 docker 的 cgroup driver 选项为 systemd,与 k8s 保持一致

    vim /etc/docker/daemon.json
    {
      "exec-opts": ["native.cgroupdriver=systemd"],
      "registry-mirrors": ["https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"]
    }
    

    重启 docker

    systemctl restart docker
    

    不禁用 swap 分区运行 kubelet

    vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
    + Environment=”KUBELET_EXTRA_ARGS=—fail-swap-on=false”
    image.png
    systemctl enable kubelet
    

    初始 k8s

    ```shell kubeadm init —ignore-preflight-errors=Swap \
      --image-repository registry.aliyuncs.com/google_containers \
    
    —service-cidr=10.1.0.0/16 —pod-network-cidr=10.244.0.0/16
<a name="JSNPk"></a>
#### 按照提示把 k8s 配置复制到用户目录下
```shell
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes # NotReady

需要安装 pod 网络插件 flannel

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl get cs
kubectl get nodes # Ready 多试几次

允许 master 部署 pod

kubectl taint nodes --all node-role.kubernetes.io/master-

重置

直接使用 kubeadm reset 重置环境,可看到所有容器已清理 docker ps -a