国内使用kubeadm部署kubernetes的完整流程
使用阿里云的镜像安装kubeadm和kubectl
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
# 安装
yum install -y kubelet kubeadm kubectl
kubeadm将下载kubelet、kube-apiserver、kube-controller-manager、kube-scheduler、kube-proxy、etcd、coredns等内容,同样使用阿里云镜像
kubeadm config images list |sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#docker.io/mirrorgooglecontainers#g' | sh -x
docker images |grep mirrorgooglecontainers |awk '{print "docker tag",$1":"$2,$1":"$2}' |sed -e 's/mirrorgooglecontainers/k8s.gcr.io/2' |sh -x
docker images |grep mirrorgooglecontainers |awk '{print "docker rmi """$1""":"""$2}' |sh -x
docker pull coredns/coredns:1.2.6
docker tag coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6
docker rmi coredns/coredns:1.2.6
这里需要注意 coredns/coredns:1.2.6
会根据kubeadm的版本更新,可以通过kubeadm config image list
来查看。如果有兴趣,可以魔改该脚本,使之更加自动化一些。。
需要启动kubelet,至于kubelet起到什么作用在此不赘述。启动kubelet时,需要关闭SELinux以及swap相关命令为:
swapoff -a
setenforce 0
然后启动kubelet
systemctl start kubelet
使用kubeadm执行初始化操作,为正常运行 需携带有pods网络配置:
kubeadm init --pod-network-cidr=10.244.0.0/16
完成后需要将/proc/sys/net/bridge/bridge-nf-call-iptables文件中填写1,并执行
sysctl net.bridge.bridge-nf-call-iptables=1
最后使用 flannel建立pods网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
设置master节点可以创建pod
kubectl taint nodes --all node-role.kubernetes.io/master-