K8S集群部署
·
一、环境初始化
1.1 环境准备
服务器要求
建议最小硬件配置:
2
核
cpu
,
4G
内存,
40G
硬盘
建议操作系统:
centos 7.6
及其以上,
推荐
centos 7.9
软件环境(本次部署采用版本)
操作系统:
centos 7.9
docker
:
19.03.15
k8s: v1.17.5
服务器规划
|
角色
|
ip
地址(设置静态)
| cpu |
内存
|
硬盘
|
|
k8s-maste
|
192.168.17.101
| 2 | 4G |
40G
|
|
k8s-node1
| 192.168.17.102 | 2 | 2G |
40G
|
|
k8s-node2
| 192.168.17.103 | 2 | 2G |
40G
|
1.2、主机域名解析
为方便后续集群节点使用主机名进行调用,在
hosts
中配置主机名解析,企业中推荐使用内部
DNS
服务器进行通信
cat >> /etc/hosts << EOF
192.168.17.101 k8s-master
192.168.17.102 k8s-node1
192.168.17.103 k8s-node2
EOF
1.3、设置时区
timedatectl set-timezone Asia/Shanghai
1.4、禁用防火墙
#关闭防火墙
systemctl stop firewalld
#取消防火墙开机自启动
systemctl disable firewalld
1.5、关闭selinx
#临时关闭selinux
setenforce 0
#永久关闭selinux
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
1.6、禁用swap分区
#关闭swap分区
swapoff -a
#防止开机启动
sed -i '/swap/s/^/#/' /etc/fstab
1.7、修改linux内核参数
cat >> /etc/sysctl.d/k8s.conf <<'EOF'
vm.swappiness=0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
------------------------------分割线------------------------
modprobe br_netfilter
modprobe overlay
sysctl -p /etc/sysctl.d/k8s.conf
1.8、命令补全
安装bash-completion
yum -y install bash-completion bash-completion-extras
使用bash-completion
source /etc/profile.d/bash_completion.sh
二、docker安装部署
2.1 安装docker前置条件
yum install -y yum-utils device-mapper-persistent-data lvm2
2.2 添加源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
2.3 查看docker更新版本
yum list docker-ce --showduplicates | sort -r
2.4 安装docker指定版本
sudo yum install docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io
2.5 开启docker服务
systemctl start docker
systemctl status
2.6 安装阿里云镜像加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["自己的阿里云镜像加速地址"]
}
EOF
systemctl daemon-reload
systemctl restart docker
2.7 设置docker开启启动服务
systemctl enable docker
2.8 修改Cgroup Driver
修改daemon.json,新增:
"exec-opts": ["native.cgroupdriver=systemd"]
重启docker服务:
systemctl daemon-reload
systemctl restart docker
查看修改后状态:
docker info | grep Cgroup
2.9 复习docker常用命令
docker -v
docker version
docker info
三、k8s安装部署
安装包下载地址:
3.1 导入镜像和k8s软件包
cd 镜像
docker load -i k8sv1.17.6.tar
# 网络配置镜像,在主节点加载就行
docker load -i calico3.13.2.tar
3.2 安装yum源
3.2.1 新建repo文件
vi /etc/yum.repos.d/kubernates.repo
3.2.2 文件内容
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
3.2.3 更新缓存
yum clean all
yum -y makecache
3.2.4 验证源是否可用
yum list | grep kubeadm
如果提示要验证yum-key.gpg是否可用,输入y。
查找到kubeadm。显示版本

3.2.5 查看k8s版本
yum list kubelet --showduplicates | sort -r
3.2.6 安装k8s-1.17.5
yum install -y kubelet-1.17.5 kubeadm-1.17.5 kubectl-1.17.5
3.3 设置kubelet
3.3.1 增加配置信息
如果不配置kubelet,可能会导致K8S集群无法启动。为实现docker使用的cgroupdriver与kubelet
使用的cgroup的一致性。
vi /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
3.3.2 设置开机启动
systemctl enable kubelet
3.4 初始化集群
配置
k8s
集群网络
3.4.1 calico官网地址
官网下载地址:
https://docs.projectcalico.org/v3.14/manifests/calico.yaml
github地址:
https://github.com/projectcalico/calico
镜像下载:
docker pull calico/cni:v3.14.2
docker pull calico/pod2daemon-flexvol:v3.14.2
docker pull calico/node:v3.14.2
docker pull calico/kube-controllers:v3.14.2
配置hostname:
hostnamectl set-hostname k8s-master
配置ip地址:

本次部署使用文件下载链接:
加载配置
先进入到yml所在文件夹在执行以下命令
kubectl apply -f calico.yml
3.4.2 初始化集群信息:calico网络
kubeadm init --apiserver-advertise-address=192.168.17.101 --kubernetes-version v1.17.6 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.81.0.0/16
3.4.3 执行配置命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3.4.4 node节点加入集群信息
master节点启动后,最后有输出这个命令,如果没有说明启动失败
kubeadm join 192.168.17.101:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:a7772c270f6e83912c0fe1e33f669c3188b20ee446d9ea5aac1aed5c1203fe52
3.4.5 在master节点进行验证
kubectl get nodes

更多推荐
所有评论(0)