废话不多说,直接上操作。
环境
系统 : Amazon Linux
node-cidr: 10.0.0.0/24
service-cidr: 10.96.0.0/12
pod-cidr: 10.244.0.0/16
cluster: 一台master 两台node
① · K8s镜像仓库
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
systemctl enable kubelet && systemctl start kubelet
其他系统k8仓库部署方法请参考 https://developer.aliyun.com/mirror/kubernetes?spm=a2c6h.13651102.0.0.3e221b11SW3mYV
② · 安装docker、kubelet、kubeadm、kubecli。
yum install kubectl kubeadm kubecli -y --nogpgcheck
yum install docker -y
③ · 配置部署docker
启动docker之前先添加一个环境变量(国内加速器,如VPs在国外不需要添加此变量)
vim /usr/lib/systemd/docker.service
##添加 Environment="HTTPS_PROXY=http://www.ik8s.io:10080"
##添加 Environment="NO_PROXY=127.0.0.0/8,172.20.0.0/16"
更改完使用
##重载docker文件
systemctl daemon-reload
##检查docker配置是否成功
docker info
④ · 配置iptables
##检查下面两个文件内容是否为 “1”
/proc/sys/net/bridge/bridge-nf-call-iptables
/pron/sys/net/bridge/brideg-nf-call-ip6tables
⑤ · 初始化kubeadm
5.1 查看kubelet配置文件路径
rpm -ql kubelet
vim /etc/sysconfig/kubelet
##开启swap可能会导致报错,所以此处增加额外参数,屏蔽swap错误信息。
##内容改为 KUBELET_EXTRA_ARGS="--fail-swap-on=false"
5.2 初始化kubelet
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
##也可添加 --kubernetes-version=v1.xx 指定特定的k8s版本信息
5.3.1 完成初始化-------如果未成功
如果kubeadm init未成功,如可能由于docker未启动成功,可使用重置命令
kubeadm reset
5.3.2 完成初始化---启动成功
##启动成功后,根据最后面的提示完成最后一步
mkdir ~/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
##安装flannel网络
##安装的过程中会需要一些时间拉去镜像 使用 docker image ls 查看flannel镜像就绪后即可
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
##并将成功后提示的秘钥复制到已经完成安装部署的其他NODE节点上完成加入集群
5.4 查看master和node就绪情况,当你看到如下信息,k8s集群配置就成功啦