部署环境:VMware虚拟机,2core,2.5G内存,CentOS Linux release 7.5.1804(最好是7.6或以上版本)
部署参考文章
以下是实际操作:
- 修改hostname
[root@k8s-master ~]# hostnamectl set-hostname 想要修改的主机名
[root@k8s-master ~]# exec bash
[root@k8s-master ~]# setenforce 0
- 设置selinux为disabled
[root@k8s-master ~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
- 将hostname配置到/etc/hosts文件中
[root@k8s-master ~]# echo "127.0.0.1 $(hostname)" >> /etc/hosts
- 设置防火墙(假如是学习部署不关心安全问题可直接关掉防火墙,如果不是就按上面文章的命令设置,这次部署直接关防火墙)
[root@k8s-master ~]# systemctl stop firewalld.service
[root@k8s-master ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since 五 2019-12-20 23:26:42 CST; 12h ago
Docs: man:firewalld(1)
Main PID: 707 (code=exited, status=0/SUCCESS)
12月 20 23:20:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
12月 20 23:20:26 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
12月 20 23:26:41 k8s-master systemd[1]: Stopping firewalld - dynamic firewall daemon...
12月 20 23:26:42 k8s-master systemd[1]: Stopped firewalld - dynamic firewall daemon.
- 配置iptables(假如没关防火墙)
[root@k8s-master ~]# modprobe br_netfilter
[root@k8s-master ~]# echo '1' >> /proc/sys/net/bridge/bridge-nf-call-iptables
- 配置yum源
[root@k8s-master ~]# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
因为使用上面文章的repositories无法连接,所以改成阿里云的repositories
- 下载docker安装包(没有安装最新)、启动和设置开机启动
配置阿里云Docker Yum源
[root@k8s-master ~]# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
[root@k8s-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@k8s-master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
选择指定的版本下载
[root@k8s-master ~]# yum list docker-ce --showduplicates
[root@k8s-master ~]# yum -y install docker-ce-18.03.0.ce-1.el7.centos
[root@k8s-master ~]# systemctl restart docker && systemctl enable docker
- 下载kubeadm、kubectl、kubelet
[root@k8s-master ~]# yum list kubeadm kubect kubelet --showduplicates
[root@k8s-master ~]# yum -y install kubeadm-1.15.5-0 kubectl-1.15.5-0 kubelet-1.15.5-0
[root@k8s-master ~]# systemctl restart kubelet && systemctl enable kubelet
- 手动下载k8s需要的相关镜像并更改对应的tag(重要的一步)
在GitHub上获取需要使用的镜像以及下载的脚本(对应是images.properties和load_images.sh),放到服务器执行脚本
- 初始化master节点
[root@k8s-master ~]# kubeam init --
备注一:在节点初始化时,kubeadm会检测镜像中的tag是否含有k8s.gcr.io,没有则默认到gcr.io下载镜像,但是国内无法连接到gcr.io,无法下载镜像,造成初始化失败。
备注二:k8s的镜像需要与kubeadm的版本相同,不然在初始化节点的时候,kubeadm检测不到符合自身版本的镜像,同上,默认到gcr.io下载镜像,但无法连接,造成初始化失败。
备注三:初始化时如果报 [ERROR Swap]: running with swap on is not supported. Please disable swap错误,可以使用 swapoff -a 命令进行解决。
- 配置kubectl认证信息
[root@k8s-master ~]# mkdir -p $HOME/.kube
[root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config
- 让集群的状态变成ready和kube-dns的状态变成running
[root@k8s-master ~]# export kubever=$(kubectl version | base64 | tr -d '\n')
[root@k8s-master ~]# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
结果
备注四:内存空间一定要足够,不然镜像会一直重启。
备注五:镜像启动需要一定时间,如果长时间还没成功再进行错误排查
备注六:如果status为ImagePullBackOff或ErrImagePull,有可能是镜像拉取失败
网友评论