写在前面的话
上一节介绍了一些关于 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
结果如图: