Kube-proxy开启ipvs的前置条件

modprobe br_netfilter kube proxy作为容器、svc的必备前提。

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs //ipvs模块
modprobe -- ip_vs_rr  
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules\ //修改modules文件权限
&& bash /etc/sysconfig/modules/ipvs.modules\ //执行
&&lsmod | grep -e ip_vs -e nf_conntrack_ipv4 //检测是否开启成功

安装docker

这一步时间比较久,不过阿里云的源速度还是可以的,积分十分钟就可以把docker服务安装好。

yum install -y yum-utils device-mapper-persistent-data //依赖
yum-config-manager --add-repo   http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo//添加repo源
yum update -y && yum install -y docker-ce //安装,如果container.io版本不符,可以使用--nobest
mkdir /etc/docker ## 创建 /etc/docker 目录

配置 daemon,执行cgroup的驱动为systemd

cat > /etc/docker/daemon.json <<EOF
{"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"  }}
EOF

配置docker自启动以及重启docker服务

mkdir-p /etc/systemd/system/docker.service.d
systemctl daemon-reload && systemctl restart docker && systemctl enable docker # 重启docker服务

安装kubeadm kubectl kubelet

首先编写k8s repo文件

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.gpghttp://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

三个必须安装的软件,必须同时安装在master,node上,同时保证开机自启kubelet

yum -y  install  kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1
systemctl enable kubelet.service

初始化主节点

k8s启动过程,首先初始化主节点,修改相对应的配置,比如ipvs配置,主节点ip,版本等。

kubeadm config print init-defaults > kubeadm-config.yaml

有几点需要修改的地方:

  1. advertiseAddress 主节点的ip
  2. kubernetesVersion版本号,实例使用v1.15.1
  3. podSubnet 10.244.0.0/16,flannel默认网域。
  4. ipvs

     ---    
     apiVersion: kubeproxy.config.k8s.io/v1alpha1    
     kind: KubeProxyConfiguration
     featureGates:      
             SupportIPVSProxyMode: true    
     mode: ipvs

    初始化即可,一定要保存init的日志记录,里面的信息有以后经常用到的。最主要的是node加入master命令。

kubeadm init --config=kubeadm-config.yaml

kubeadmin init log简介

  • [init] Using Kubernetes version: v1.15.1 #k8s版本号
  • kubeadm config images pull #可以提前下载镜像,或者提前导入,防止因为网络原因卡住
  • [certs] Using certificateDir folder "/etc/kubernetes/pki" #k8s证书
文章目录