• Kubeadm搭建K8S集群


    Kubeadm搭建K8S集群

    搭建集群的方式有两种:kubeadm 和 二进制安装包搭建,这里我们就先对kubeadm的方式做一个搭建

    kubeadm搭建集群大致步骤

    • kubeadm搭建:快速搭建,缺点就是出了问题不好把控

      1. CentOS7虚拟机三台即可,配置允许小幅度降低

        1. 【Master Node】 2核心 4G内存 30G硬盘 * 1

        2. 【Worker Node】 4核心 6G内存 50G硬盘 * 2

      2. 系统初始化操作(修改必要配置文件,关闭防火墙......等等)

      3. 三个节点安装 Docker 、 Kubelet 、kubeadm 、 Kubectl

      4. 在Master 节点执行 kubeadm init 命令进行初始化

      5. 在Workder节点执行 kubeadm join命令将node节点添加到当前的集群里面

      6. 配置网络插件

    服务器初始化

    • 192.168.217.120 [ master ]

    • 192.168.217.130 [ node1 ]

    • 192.168.217.140 [ node2 ]

    • 永久关闭防火墙

      • systemctl disable firewalld

    • 永久关闭selinux

      • sed -i 's/enforcing/disabled/' /etc/selinux/config

    • 永久关闭swap分区

      • sed -ri 's/.swap./#&/' /etc/fstab

    • 设置主机名

      • hostnamectl set-hostname <hostname>

        • hostnamectl set-hostname master

        • hostnamectl set-hostname node1

        • hostnamectl set-hostname node2

    • 在master添加hosts

      • cat >> /etc/hosts << EOF 192.168.217.120 master 192.168.217.130 node1 192.168.217.140 node2 EOF

    • 将桥接的IPv4流量传递到iptables的链

      • cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF

      • sysctl --system # 生效

    • 时间同步于宿主机

      • yum install ntpdate -y

      • ntpdate time.windows.com

    安装Docker

    • 所有节点安装Docker/kubeadm/kubelet,这个三个环境,我们依次安装

    • 因为kubenates默认的容器为Docker,所以首先我们安装Docker

    • 设置Docker的镜像地址为国内阿里云

      cat > /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"] } EOF

    • 添加阿里云yum软件源

    cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF

    安装kubeadm,kubelet和kubectl

    • yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

    • systemctl enable kubelet

    Maser节点初始化

    • 现在我们我们已经执行到大致步骤的第四步了,在master节点上初始化环境

    • 由于K8S默认拉去镜像的地址是国外的,无法访问,我们将其地址修改为国内的阿里云地址

      kubeadm init --apiserver-advertise-address=192.168.217.120 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

       

    • 使用kubectl工具

    mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config $ kubectl get nodes #发现只有一个master节点

    node节点加入集群

    • 我们在node1和node2机器上,也就是130和140机器上执行以下操作加入到集群中

    • 我们在master执行初始化的时候,末尾会有一句提示如下所示

    $ kubeadm join 192.168.217.120:6443 --token esce21.q6hetwm8si29qxwn --discovery-token-ca-cert-hash sha256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5

    将其复制到两个节点中执行即可,其中有效的认证token时效为24小时,失效后从星创建即可

    kubeadm token create --print-join-command

    部署POD网络插件:CNI

    wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

    • 默认镜像地址无法访问,sed命令修改为docker hub镜像仓库。

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

    • 测试效果如下

    kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE kube-flannel-ds-amd64-2pc95 1/1 Running 0 72s

    测试Kubernetes集群

    在Kubernetes集群中创建一个pod,验证是否正常运行:

    kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort kubectl get pod,svc

    然后访问该Nginx的服务,查看是否正常即可 ip:port

  • 相关阅读:
    设计模式之-简单工厂模式
    C# 汉语转拼音
    深入理解DIP、IoC、DI以及IoC容器
    C# 各种帮助类大全
    C# TCP多线程服务器示例
    【AtCoder】AGC004
    【AtCoder】ARC061
    【AtCoder】CODE FESTIVAL 2016 qual A
    【AtCoder】AGC005
    【AtCoder】CODE FESTIVAL 2016 qual B
  • 原文地址:https://www.cnblogs.com/msi-chen/p/14151713.html
Copyright © 2020-2023  润新知