一、环境初始化

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
24G
40G
k8s-node1
192.168.17.10222G
40G
k8s-node2
192.168.17.10322G
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地址:

本次部署使用文件下载链接:

https://download.csdn.net/download/qq_30024063/92776991

加载配置
先进入到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

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐