【02】Kubernets:使用 kubeadm 部署 K8S 集群

写在前面的话

上一节介绍了一些关于 K8S 的基本概念,但是看了以后发现很多东西都看不懂,这一节就通过部署一个集群来协助理解相关的概念。

部署 K8S 集群

K8S 集群的部署方式:

1. kubeadm

2. rancher

3. 云服务商提供的

4. yum 安装(版本有点低)

准备:

IP 主机名 角色 安装
192.168.100.101 node1 Master kubeadm/kubelet/kubectl/docker-ce
192.168.100.102 node2 Node Master
192.168.100.103 node3 Node Master

准备 3 台初始化的机器,内存大于 2G。

至于 kubeadm 文档如下:

https://github.com/kubernetes/kubeadm/blob/master/docs/design/design_v1.10.md

【1】三台机器初始化操作:

# 配置主机名解析
echo "192.168.100.101   node1" >>/etc/hosts
echo "192.168.100.102   node2" >>/etc/hosts
echo "192.168.100.103   node3" >>/etc/hosts

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

# 取消 swap
swapoff -a

# 配置 ipvs
echo 'net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1' > /etc/sysctl.d/k8s.conf

# 使配置生效
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

# kube-proxy 配置 ipvs
echo 'modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4' >> /etc/sysconfig/modules/ipvs.modules

# 生效配置
chmod 755 /etc/sysconfig/modules/ipvs.modules
bash /etc/sysconfig/modules/ipvs.modules
lsmod | grep -e ip_vs -e nf_conntrack_ipv4

【2】三台机器都安装配置 docker:

# 卸载旧版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2 bridge-utils bash-completion wget

# 配置阿里 yum 源
cd /etc/yum.repos.d
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装 docker
yum -y install docker-ce

配置 docker 阿里云下载加速:

mkdir -p /etc/docker
echo '{
 "registry-mirrors": ["https://eyg9yi6d.mirror.aliyuncs.com"]
}' > /etc/docker/daemon.json

启动 docker:

systemctl enable docker
systemctl start docker
docker version

我这里 docker 版本为: 18.09.5

【3】三台机器都配置 K8S 源并安装 K8S:

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

安装 K8S 并设置开机启动,但是先不启动

yum makecache fast
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

我们这里安装 K8S 版本为:v1.14.1

【4】节点下载镜像:

由于国内网络的原因,K8S 的镜像站是连接不上的,所以需要手动去下载,这里有一个网上的脚本,可以协助下载配置:

#!/bin/bash

#################################################################
# 作者:Dy1an <[email protected]>
# 日期:2019-05-05
# 作用:下载 K8S 相关镜像
#################################################################

#################################################################
# 系统相关变量
#################################################################
LINE="==================================================================="
MY_REGISTRY=registry.cn-hangzhou.aliyuncs.com/openthings

#################################################################
# 拉取镜像
#################################################################
echo ${LINE}
echo "Pull Kubernetes v1.14.1 Images from aliyuncs.com ......"
echo ${LINE}
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver:v1.14.1
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager:v1.14.1
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler:v1.14.1
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-proxy:v1.14.1
docker pull ${MY_REGISTRY}/k8s-gcr-io-etcd:3.3.10
docker pull ${MY_REGISTRY}/k8s-gcr-io-pause:3.1
docker pull ${MY_REGISTRY}/k8s-gcr-io-coredns:1.3.1

#################################################################
# 修改 tag
#################################################################
echo ${LINE}
echo "Change Kubernetes v1.14.1 Images tags ......"
echo ${LINE}
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver:v1.14.1 k8s.gcr.io/kube-apiserver:v1.14.1
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler:v1.14.1 k8s.gcr.io/kube-scheduler:v1.14.1
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager:v1.14.1 k8s.gcr.io/kube-controller-manager:v1.14.1
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-proxy:v1.14.1 k8s.gcr.io/kube-proxy:v1.14.1
docker tag ${MY_REGISTRY}/k8s-gcr-io-etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag ${MY_REGISTRY}/k8s-gcr-io-pause:3.1 k8s.gcr.io/pause:3.1
docker tag ${MY_REGISTRY}/k8s-gcr-io-coredns:1.3.1 k8s.gcr.io/coredns:1.3.1

#################################################################
# 提示完成
#################################################################
echo ${LINE}
echo "Pull Kubernetes v1.14.1 Images FINISHED."
echo ${LINE}

在每台机器上面执行脚本,下载完成后查看镜像:

docker images

结果如图:

猜你喜欢

转载自www.cnblogs.com/Dy1an/p/10812263.html