说明
- 本流程已在阿里云国内ECS上通过测试
- 本流程只是为想要体验安装过程的同学提供参考,在生产中请使用阿里云ACK
- 如果对本流程有疑问,可以租一台阿里云国外ECS,然后跑一下官方安装教程
1. 安装Docker
apt-get update && apt-get install -y docker.io
配置镜像加速
打开控制台->右上角橙色按钮->产品与服务->弹性计算->容器镜像服务->镜像加速器,执行类似如下的代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["<你的地址>"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2. 安装k8s
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
systemctl daemon-reload
systemctl restart kubelet
3. 拉取镜像
先确认我们需要的镜像版本,如果版本不同,请自行修改
kubeadm config images list
下面是绕道下载的镜像
docker pull kubesphere/kube-proxy:v1.18.6
docker pull kubesphere/kube-controller-manager:v1.18.6
docker pull kubesphere/kube-apiserver:v1.18.6
docker pull kubesphere/kube-scheduler:v1.18.6
docker pull kubesphere/pause:3.2
docker pull coredns/coredns:1.6.7
docker pull cocity/etcd:3.4.3-0
下面是网络插件镜像,可以直接下载
docker pull calico/node:v3.14.1
docker pull calico/pod2daemon-flexvol:v3.14.1
docker pull calico/cni:v3.14.1
docker pull calico/kube-controllers:v3.14.1
4. 重命名镜像
docker tag kubesphere/kube-proxy:v1.18.6 k8s.gcr.io/kube-proxy:v1.18.6
docker tag kubesphere/kube-controller-manager:v1.18.6 \
k8s.gcr.io/kube-controller-manager:v1.18.6
docker tag kubesphere/kube-apiserver:v1.18.6 k8s.gcr.io/kube-apiserver:v1.18.6
docker tag kubesphere/kube-scheduler:v1.18.6 k8s.gcr.io/kube-scheduler:v1.18.6
docker tag kubesphere/pause:3.2 k8s.gcr.io/pause:3.2
docker tag coredns/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7
docker tag cocity/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
docker rmi kubesphere/kube-proxy:v1.18.6 \
kubesphere/kube-controller-manager:v1.18.6 \
kubesphere/kube-apiserver:v1.18.6 \
kubesphere/kube-scheduler:v1.18.6 \
kubesphere/pause:3.2 \
coredns/coredns:1.6.7 \
cocity/etcd:3.4.3-0
5. 关闭Swap
永久关闭
编辑/etc/fstab,注释UUID、/dev/fd0开头的这两行(最后两行)
临时关闭
sudo swapoff -a
6. 启动k8s
kubeadm init
配置kubectl的操作权限
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
(可选)设置master为可调度,这样可以在单机上体验k8s,否则你需要至少一台从机
kubectl taint nodes --all node-role.kubernetes.io/master-
启动网络插件
# 该地址可能无法访问,可以先通过渠道下载再拷贝到服务器
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
7. 验证启动
docker pull nginx:1.7
kubectl run my-nginx --image=nginx:1.7
kubectl get pods
# NAME READY STATUS RESTARTS AGE
# my-nginx 1/1 Running 0 51s
kubectl delete pod my-nginx