Oracle VM VirtualBox虚拟机中搭建k8s集群

一、安装准备(所有机器)

1、环境准备

        机器环境

        节点CPU核数必须是 :>= 2核 ,否则k8s无法启动 内存大于2G 节点之间网络互通

        准备3台虚拟机环境

                k8s-master01: 此机器用来安装k8s-master的操作环境

                k8s-node01: 此机器用来安装k8s node节点的环境

                k8s-node02: 此机器用来安装k8s node节点的环境

2、依赖环境

        2.1、给每一台机器设置主机名 

hostnamectl set-hostname k8s-master01
hostnamectl set-hostname k8s-node01
hostnamectl set-hostname k8s-node02 

                查看主机名 

hostname

        2.2、配置IP host映射关系

  vi /etc/hosts 
192.168.66.10 k8s-master01
192.168.66.11 k8s-node01
192.168.66.12 k8s-node02

3、时间同步确认

        设置系统时区为中国/上海    

  timedatectl set-timezone Asia/Shanghai

4、安装依赖环境

 yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git iproute lrzsz bash-completion tree bridge-utils unzip bind-utils gcc

5、防火墙配置

安装iptables,启动iptables,设置开机自启,清空iptables规则,保存当前规则到默认规则

        5.1、关闭防火墙并设置开机禁用防火墙

systemctl stop firewalld && systemctl disable firewalld

        5.2、安装并置空iptables 

yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save

        5.3、关闭selinux

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

        5.4、关闭系统不需要的服务

systemctl stop postfix && systemctl disable postfix

 6、禁用交换分区

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

 7、系统优化参数

modprobe br_netfilter

        7.1、配置参数输出到一个文件中

cat > kubernetes.conf <

        7.2、将优化内核文件拷贝到/etc/sysctl.d/文件夹下,这样优化文件开机的时候能够被调用

cp kubernetes.conf /etc/sysctl.d/kubernetes.conf

        7.3手动刷新,让优化文件立即生效

sysctl -p /etc/sysctl.d/kubernetes.conf

        7.4、系统文件数调整

echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf

 8、kube-proxy设置

        8.1、开启 ipvs 前置条件

                配置

cat > /etc/sysconfig/modules/ipvs.modules <

        8.2、使用lsmod命令查看这些文件是否被引导

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash/etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

        8.3、查看kube-proxy的代理设置

kubectl logs kube-proxy-58j2k -n kube-system

        8.4、修改代理设置,删除并重启kube-proxy

kubectl get pod -n kube-system | grep kube-proxy |awk '{system("kubectl delete pod "$1" -n kube-system")}'

systemctl daemon-reload
systemctl restart kube-proxy
systemctl status kube-proxy

        8.5、重新查看kube-proxy的代理设置

kubectl logs kube-proxy-58j2k -n kube-system

二、Docker-安装

安装之前如果安装过docker需要先删除执行命令(第一个命令执行报错执行第二个即可解决),删除以后8中的步骤不需要在执行

systemctl stop docker
systemctl stop docker.socket

安装k8s,所有节点都需要安装docker

        1、安装依赖环境

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

        2、添加软件源信息

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

        3、查找docker软件版本

yum list docker-ce.x86_64 --showduplicates | sort -r

        4、指定版本docker-ce 稳定版本

yum install -y docker-ce-18.09.9-3.el7

        5、设置docker daemon.json文件,源地址,存储目录,日志规则,存储方式 

  mkdir /etc/docker
cat > /etc/docker/daemon.json <

         6、启动docker服务并设置docker为开机自启动

sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker

        7、查看启动状态

systemctl status docker

        8、移除之前的Docker

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-engine

三、Kubernetes-安装

        1、所有节点

        安装kubernetes的时候,需要安装kubelet, kubeadm等包,但k8s官网给的yum源是 packages.cloud.google.com,国内访问不了,此时我们可以使用阿里云的yum仓库镜像。

        镜像地址

        阿里云镜像网站:https://developer.aliyun.com/mirror/

        kubernetes镜像:https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ 

              1.1、 下载阿里云的k8s源

cat < /etc/yum.repos.d/kubernetes.repo
[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
setenforce 0

                1.2、查看仓库软件支持版本

yum list kubelet --showduplicates | sort -r

                1.3、指定版本进行部署,(所有节点全部进行此操作)

yum -y install kubelet-1.18.6 kubeadm-1.18.6 kubectl-1.18.6

                1.4、将kubelet设置为开机自启动

systemctl enable kubelet && systemctl start kubelet

      2、主节点

            2.1、初始化Master 在主节点进行初始化

kubeadm init --apiserver-advertise-address=192.168.56.100 --kubernetes-version=v1.18.6 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

            2.2、初始化后执行提示的命令 创建目录,保存连接配置缓存,认证文件

mkdir -p $HOME/.kube

            2.3、拷贝集群管理配置文件

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

            2.4、授权给配置文件

sudo chown $(id -u):$(id -g) $HOME/.kube/config

            2.5、初始化完成查看节点的状态,为notready,这时状态是应为网络插件为安装

kubectl get nodes

     3、flannel插件

           3.1、进行安装

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

        wget命令连接超时,可以设置跳过证书验证

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

          3.2、查看节点的状态由notready变为Ready

kubectl get nodes

           3.3、查看系统名称空间下的k8s核心组件运行状态

kubectl get pod -n kube-system

     4、从节点Node

从节点使用命令加入master主节点 master主节点初始化完成后,会生成一个kubeadm join命令用于从节点进行join加入

        4.1、在两个从节点执行Master节点初始化完成后生成的命令

kubeadm join 192.168.56.100:6443 --token 8atp64.3wbtv64icc7e6k36 \
--discovery-token-ca-cert-hash
sha256:3ce2e67176d6169e47a2041e177fb7eb616d9b9389a43fc7d5061464a97ee1eb

        4.2、从节点初始化成功后的状态

Oracle VM VirtualBox虚拟机中搭建k8s集群_第1张图片

        4.3、查看集群运行状态,到此安装完成

kubectl get nodes -o wide

        token丢失了,可以使用如下命令来重新生成:

kubeadm token create --print-join-command

你可能感兴趣的:(Oracle VM VirtualBox虚拟机中搭建k8s集群)