k8s搭建手札-kubeadm

目标:1个master 2个node

宿主机:3个centos7 parallel 虚拟机

1. 关闭防火墙、关闭iptables规则、seliunx、禁用swap分区,修改liunx内核参数,安装ipvs

关防火墙:

systemctl stop firewalld.service 
systemctl disable firewalld.service 

关iptable:

systemctl stop iptables
systemctl disable iptables 

关selinux:

# 查看状态
getenforce

# 临时关闭
getenforce 0

# 永久关闭
vim /etc/selinux/config
SELINUX=disabled

禁用swap分区

# 编辑 /etc/fstab 注释swap行

修改linux内核

# 编辑配置文件
vim /etc/sysctl.d/kubernetes.conf

# 文件内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1  # liunx数据包转发

# 让配置生效
sysctl -p

# 加载网桥过滤模块
modprobe br_netfilter

# 查看是否成功
lsmod | grep br_netfilter

配置ipvs功能

# 安装ipset ipvsadm
yum install ipset ipvsadm -y i

# 添加脚本文件
cat <<EOF > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

# 添加权限
chmod +x /etc/sysconfig/modules/ipvs.modules

# 执行
/bin/bash /etc/sysconfig/modules/ipvs.modules

# 查看状态
lsmod | grep -e ip_vs -e nf_conntrack_ipv4

重启服务器

reboot

 

2. 安装docker与kubernetes组件

# 切换yum镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

# 安装docker,使用参数--setopt=obsoletes=0安装指定的docker版本,否则可能安装更高的版本

yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y

添加docker配置文件

其中xxxx需要登陆自己的阿里云-镜像服务-镜像加速器获取

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

systemctl restart docker
systemctl enable docker

docker version

添加kubernetes组件

# 添加配置文件
vim /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

安装kube相关工具

yum install --setopt=obsoletes=0 kubeadm-1.17.4-0 kubelet-1.17.4-0 kubectl-1.17.4-0 -y

配置kubelet的cgroup,编辑/etc/sysconfig/kubelet

KUBELET_CGROUP_ARGA="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"

3. 安装k8s集群

脚本准备镜像

#!/bin/bash
images=(
    kube-apiserver:v1.17.4
    kube-controller-manager:v1.17.4
    kube-scheduler:v1.17.4
    kube-proxy:v1.17.4
    pause:3.1
    etcd:3.4.3-0
    coredns:1.6.5
)
for imageName in ${images[@]};do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done

查看下载镜像

docker images

集群初始化,只需要在master节点上进行,确保master节点cpu与内存资源足够s d

kubeadm init \
--kubernetes-version=v1.17.4 \
--pod-network-cidr=10.96.0.0/16 \
--service-cidr=10.96.0.0/12 \
--apiserver-advertise-address=10.211.55.6

配置拷贝

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
sudo chown $(id -u):$(id -g) $HOME/.kube/config

网络配置

 

上一篇:Kubeadm方式部署企业级K8s集群


下一篇:kubeadm和kubectl管理