保证已经安装docker
先使用 aliyun 的 k8s 源安装 kubeadm 和相关命令行工具
- kubelet 负责节点维护pod
- kubeadm 操作 k8s (init、reset、join 加入节点)
- kubectl 和使用者交互,发送执行命令
apt-get update && apt-get install -y apt-transport-httpscurl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.listapt-get updateapt-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”
systemctl enable kubelet初始 k8s
```shell kubeadm init —ignore-preflight-errors=Swap \
—service-cidr=10.1.0.0/16 —pod-network-cidr=10.244.0.0/16--image-repository registry.aliyuncs.com/google_containers \
<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
