• 部署kubernetes单机集群(K8S)


    环境配置

    内容

    参数

    操作系统

    centos

    机器环境

    阿里云

    CPU核心数

    4

    内存

    16G

       

     首先你要安装docker,部署看另一篇博客https://www.cnblogs.com/xuziyu/p/11720992.html

    完成这篇博客的部署就可以进行下面的部署了!!!

    因为处于初级学习阶段,所以就先部署单机的,这里需要注意的是,K8S一般都会涉及到梯子,但对于小白来讲,梯子是什么鬼都有点困难,所以为了避免这种情况,我们用阿里云的源,这样就可以避免梯子这一步了。接下来开始部署

    • 确保docker已经启动

    [root@docker001 ~]# systemctl enable docker && systemctl start docker
    • 配置Ipvs模块,kube-proxy会用到

    cat > /etc/sysconfig/modules/ipvs.modules <<EOFmodprobe -- ip_vs_rr
    modprobe -- ip_vs_wrr
    modprobe -- ip_vs_sh
    modprobe -- nf_conntrack_ipv4
    EOF
    chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
    •  配置k8s的yum源 (这里用的网址避免了梯子)

    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=0
    repo_gpgcheck=0
    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
                  http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF

    或者你可以这样操作

    安装必要命令
    
    # 在/etc/yum.repos.d 下创建k8s.repos, 并添加如下内容
    
    name=Kubernetes
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

    以上两种情况2选一即可

    • 安装kubeadm,kubelet

    1.yum update

    以上的截图是升级以后的,如果没有升级过,需要等待一段时间直到出现Complete!

    在升级yum时如果出现报错
    
    Failed to connect to 2404:6800:4012::200e: Network is unreachable
    
    请参考https://blog.csdn.net/qq_28641401/article/details/96305174 解决问题
    2.yum makecache fast

    3.yum install -y kubelet kubeadm kubectl

    如果执行以上两部报以下错误,那就说明你的2.配置k8s的yum源 (这里用的网址避免了梯子)有问题,基本上就是梯子闹得,仔细检查一下

    • 拉取镜像

    google 镜像并不在docker库中,因此要防止墙的问题,需要找代替镜像

    // 查看kubeadm镜像
    $ kubeadm config images list
    
    // 结果
    k8s.gcr.io/kube-apiserver:v1.13.3
    k8s.gcr.io/kube-controller-manager:v1.13.3
    k8s.gcr.io/kube-scheduler:v1.13.3
    k8s.gcr.io/kube-proxy:v1.13.3
    k8s.gcr.io/pause:3.1
    k8s.gcr.io/etcd:3.2.24
    k8s.gcr.io/coredns:1.2.6

    // 执行如下脚本(没有翻墙的同学只能通过阿里云镜像或者其他镜像)
    $ for i in `kubeadm config images list`; do 
    imageName=${i#k8s.gcr.io/}
    docker pull registry.aliyuncs.com/google_containers/$imageName
    docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
    docker rmi registry.aliyuncs.com/google_containers/$imageName
    done;
    
    (本脚本来自于https://www.jianshu.com/p/d27141e18398)
    • 开机启动 && 启动服务

    $ systemctl enable kubelet && systemctl start kubelet
    • k8s集群初始化

    开通必要端口号 防止不必要的问题出现
    
    // 6443
    firewall-cmd --zone=public --add-port=6443/tcp --permanent && firewall-cmd --reload
    // 10250
    firewall-cmd --zone=public --add-port=10250/tcp --permanent && firewall-cmd --reload

    如果你是云主机,执行这一步可能会出现以下报错

     

     这是因为你的防火墙关了你需要开启防火墙

    通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启

    通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。

     具体请参考博客https://www.cnblogs.com/rxbook/p/8110143.html
    
    其实这一步对于云主机来讲是多于的,忽略即可
    •  安装命令

    $ kubeadm init
    • 开启单机模式

    [root@docker001 ~]# kubectl taint nodes --all node-role.kubernetes.io/master
    [root@docker001 ~]# kubectl get nodes
    NAME STATUS ROLES AGE VERSION
    docker001 NotReady master 3h33m v1.16.2

     注意:不要慌,这里NotReady 完全正常
    安装网卡插件后,查询即可变为Ready

    解决:

    // 这边有很多选择,本次使用`weave`
    // 配置地址 https://kubernetes.io/docs/concepts/cluster-administration/addons/
    
    $ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '
    ')"

    安装网卡插件后大约等待一分钟再进行查看

     到这里我们的kubernetes基本上就是部署成功了!!!!

     接下来我们将在kubernetes部署mysql和Tomcat

     链接:https://i.cnblogs.com/EditPosts.aspx?postid=11728099

  • 相关阅读:
    9.3 simulated match
    网络流模版大全
    Treblecross
    ENimEN
    求逆序对的两种方法(树状数组/归并排序)
    树状数组
    计算最短路和次短路条数
    Python3.7版库的安装以及常用方法(十分简单)
    二维线段树(hdu1823)
    流星雨(记忆化搜索)
  • 原文地址:https://www.cnblogs.com/xuziyu/p/11725976.html
Copyright © 2020-2023  润新知