k8s集群搭建(kubeadm)

kubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的工具,这个工具能通过两条指令完成一个 kubernetes 集群的部署:

  1. 创建一个Master节点 kubeadm init
  2. 将Node节点加入到当前集群中 $ kubeadm join <Master 节点的IP和端口>

环境准备:

      服务器三台(虚拟机,192.168.228.10/11/12,2C/2G,centos7.5)

系统配置:

  1. 关闭防火墙
    # 临时关闭防火墙
    systemctl stop firewalld
    # 永久关闭防火墙
    systemctl disable firewalld

     

  2. 关闭selinux
    # 临时关闭selinux
    setenforce 0
    # 永久关闭selinux
    sed -i 's/enforcing/disabled/' /etc/selinux/config

     

  3. 关闭swap
    # 临时关闭swap
    swapoff -a
    # 永久关闭
    # 注释/etc/fstab文件中swap配置
    /dev/mapper/centos-root /                       xfs     defaults        0 0
    UUID=44db6c96-374e-4fca-badb-bbcf4adc1f9d /boot                   xfs     defaults        0 0
    #/dev/mapper/centos-swap swap                    swap    defaults        0 0
    
    echo vm.swappiness=0 >> /etc/sysctl.conf
    
    # 重启
    reboot
    

     

  4. 设置主机名
    # 192.168.228.10
    hostnamectl set-hostname master
    # 192.168.228.11
    hostnamectl set-hostname slave1
    # 192.168.228.12
    hostnamectl set-hostname slave2

     

  5. 配置hosts
    cat >> /etc/hosts << EOF 
    192.168.228.10 master 
    192.168.228.11 slave2 
    192.168.228.12 slave2 
    EOF

     

  6. 将桥接的IPv4流量传递到iptables的链
    cat > /etc/sysctl.d/k8s.conf << EOF 
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1 
    EOF

     

  7. 配置时间同步
    timedatectl set-timezone Asia/Shanghai
    yum install ntpdate -y
    ntpdate time.windows.com

     

 

所有节点安装Docker/kubeadm/kubelet

  1. 安装docker
    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    
    yum -y install docker-ce-18.06.1.ce-3.el7
    
    systemctl enable docker && systemctl start docker
    
    docker --version

     

  2. 添加阿里云yum软件源
    # 设置仓库地址
    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
    
    

     

  3. 安装kubeadm、kubelet、kubectl
    yum install -y kubelet kubeadm kubectl 
    
    systemctl enable kubelet

     

  4. 克隆slave1、slave2
    略(更改网络ip、主机名)
     

部署 Kubernetes Master

  1. 在master(192.168.228.10)执行
    kubeadm init --apiserver-advertise-address=192.168.228.10 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.0  --service-cidr=10.96.0.0/12  --pod-network-cidr=10.244.0.0/16

     

  2. 使用 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
  3. 安装pod网络插件(CNI)
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

加入kubernetes Node

  1. 在192.168.228.11、192.168.228.12上执行(之前执行kubeadm init 输出的最后一段命令)
    kubeadm join 192.168.228.10:6443 --token qbdetu.33vjzp8v66ohubhp \
        --discovery-token-ca-cert-hash sha256:910add3987188a8fd61ba0aef75623c9b0b4732860cfd834605769529500271d 

     

测试kubernetes集群

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

 

 这时候访问192.168.228.11:32160 / 192.168.228.12:32160,可以看到大家熟知的页面:Welcome to nginx!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值