K8S - VirtualBox中k8s集群搭建

1、准备工作

  • 我们可以使用vagrant快速创建三个虚拟机。虚拟机启动前先设置virtualbox的主机网络。现全部统一为192.168.1.1,以后所有虚拟机都是1.x的ip地址
  • K8S - VirtualBox中k8s集群搭建_第1张图片

2、启动三个centos虚机

  • 使用vagrant创建三台centos虚拟机
  • 使用vagrant ssh命令连接到虚机(每台虚机执行),编辑sshd,使之修改使用密码()
    • # ssh连接虚机
      vagrant ssh k8s-node1
      
      # 切换为root用户
      su root
      
      # 编辑sshd
      vi /etc/ssh/sshd_config
      
      # 修改使用密码
      PasswordAuthentication yes
      
      # 保存并退出
      :wq
      
      # 重启sshd
      service sshd restart
      
      # 退出root用户
      exit
      
      # 退出节点
      exit
      
      
  • 全部关闭电源

    • K8S - VirtualBox中k8s集群搭建_第2张图片
  • 添加全局设定,添加网络

    •  K8S - VirtualBox中k8s集群搭建_第3张图片

  •  挨个机器切换网络-网卡1的连接方式,选择NAT网络,MAC地址点击重新生成

    • K8S - VirtualBox中k8s集群搭建_第4张图片

       

  • 重新启动每个服务器

3、设置linux环境

  • 关闭防火墙
    • systemctl stop firewalld
      systemctl disable firewalld

  • 关闭selinux

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

  • 关闭swap

    • # 临时关闭 swap 
      swapoff -a 
      
      # 永久关闭 swap 
      sed -ri 's/.*swap.*/#&/' /etc/fstab  
      # 验证,swap必须为0;
      free -g 

  • 添加主机名与IP对应关系

    • # 编辑hosts
      vi /etc/hosts
      
      # 加入以下内容
      10.0.2.15 k8s-node1
      10.0.2.4 k8s-node2
      10.0.2.5 k8s-node3
      
      # 保存并退出
      :wq

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

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

4、备份系统快照

  •  K8S - VirtualBox中k8s集群搭建_第5张图片

5、所有节点安装

  •  Kubernetes默认CRI(容器运行时)为docker,因此先安装Docker。
  • 安装docker
# 卸载系统之前的docker
sudo yum remove docker \
				docker-client \
				docker-client-latest \
				docker-common \
				docker-latest \
				docker-latest-logrotate \
				docker-logrotate \
				docker-engine
# 安装Docker-CE
# 安装必须的依赖
sudo yum install -y uum-utils \
				device-mapper-persistent-date \
				lvm2
				
# 设置 docker repo的yum位置
sudo yum-config-manager \
	--add-repo \
	https://download.docker.com/linux/centos/docker-ce.repo
	
# 安装docker,以及docker-cli
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 配置docker加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
	"registry-mirrors":["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 启动docker & 设置docker开机自启
systemctl enable docker

  • 添加阿里云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 list|grep kube
      yum install -y kubelet-1.17.3 kubeadm-1.17.3 kubectl-1.17.3
      
      systemctl enable kubelet
      systemctl start kubelet

6、部署k8s-master

  • master节点初始化
    • kubeadm init \
      --apiserver-advertise-address=10.0.2.15 \
      --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
      --kubernetes-version v1.17.3 \
      --service-cidr=10.96.0.0/16 \
      --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

7、安装Pod网络插件 (CNI)

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

8、加入Kubernetes

  • kubeadm join 10.0.2.15:6443 --token 702nm7.f9p8bi67v6tgkhem \
        --discovery-token-ca-cert-hash sha256:75d2003216493465c80fd8d36e9a6207719ef29a41c002230635bc9b15f9c3d1

你可能感兴趣的:(linux)