美文网首页
k8s-单master集群部署笔记

k8s-单master集群部署笔记

作者: Lvxus | 来源:发表于2019-12-21 13:42 被阅读0次

    部署环境:VMware虚拟机,2core,2.5G内存,CentOS Linux release 7.5.1804(最好是7.6或以上版本)
    部署参考文章
    以下是实际操作:

    1. 修改hostname
    [root@k8s-master ~]# hostnamectl set-hostname 想要修改的主机名
    [root@k8s-master ~]# exec bash
    [root@k8s-master ~]# setenforce 0
    
    1. 设置selinux为disabled
    [root@k8s-master ~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
    
    1. 将hostname配置到/etc/hosts文件中
    [root@k8s-master ~]# echo "127.0.0.1 $(hostname)" >> /etc/hosts
    
    1. 设置防火墙(假如是学习部署不关心安全问题可直接关掉防火墙,如果不是就按上面文章的命令设置,这次部署直接关防火墙)
    [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.
    
    1. 配置iptables(假如没关防火墙)
    [root@k8s-master ~]# modprobe br_netfilter
    [root@k8s-master ~]# echo '1' >> /proc/sys/net/bridge/bridge-nf-call-iptables
    
    1. 配置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

    1. 下载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
    
    1. 下载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
    
    1. 手动下载k8s需要的相关镜像并更改对应的tag(重要的一步)
      在GitHub上获取需要使用的镜像以及下载的脚本(对应是images.properties和load_images.sh),放到服务器执行脚本
    执行后的大概结果
    1. 初始化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 命令进行解决。

    成功的标志
    1. 配置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
    
    1. 让集群的状态变成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,有可能是镜像拉取失败

    以上就是k8s-单master集群-master节点那部分的部署流程,下一篇是k8s-dashboard的部署

    相关文章

      网友评论

          本文标题:k8s-单master集群部署笔记

          本文链接:https://www.haomeiwen.com/subject/ggpwnctx.html