一、环境相关
Docker
系统版本 | 软件版本 | 部署方式 | 部署路径 | 数据路径 | 日志路径 |
---|
Centos 7.6 | 20.10.14 | yum安装 | N/A | /data/docker | N/A |
k8s
系统版本 | 软件版本 | 部署方式 | 部署路径 | 数据路径 | 日志路径 |
---|
Centos 7.6 | 1.23.5 | Kubadmin安装 | N/A | N/A | N/A |
二、安装docker
1、docker官方文档
https://docs.docker.com/engine/install/centos/
此页面是docker官方文档,内容是从centos下部署docker服务,如部署docker遇到问题,可参考此页面。
2、安装步骤
2.1、移除旧版本docker
为避免服务器之前安装过低版本docker,请使用以下命令卸载旧版本的docker。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.2、安装docker yum仓库源
(1)安装相关依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(2)安装仓库源文件
安装仓库文件,为安装docker做准备。
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
2.3、安装Docker Engine
2.3.1默认安装命令
如果是学习环境或者测试环境可以下载最新的版本去安装,如果是生产环境,请按规划版本进行安装。
sudo yum install docker-ce docker-ce-cli containerd.io -y
2.3.2查询指定版本
我们首先查找下docker仓库的docker版本号,从高到底排序查看
yum list docker-ce --showduplicates | sort -r
2.3.3进行指定docker版本安装
安装指定版本的示例命令:docker sudo yum install docker-ce-<VERSION_STRING>
docker-ce-cli-<VERSION_STRING> containerd.io
v1.23.5版本安装docker版本命令如下:
sudo yum upgrade -y && sudo yum install -y \
containerd.io-1.5.11 \
docker-ce-20.10.14 \
docker-ce-cli-20.10.14
2.3.4配置docker
2.3.4.1配置docker daemon
sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"bip": "172.19.0.1/16"
}sudo sysctl --system
sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
EOF
查看以下
cat /etc/docker/daemon.json
2.3.4.2配置开机启动服务
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo systemctl daemon-reload
sudo systemctl enable docker
2.3.4.3设置启动文件
注意yum安装的docker目录默认是/var/lib/docker,由于/目录存储空间是40G,数据盘/data
200G 因此我们需要修改docker的目录,因为docker镜像文件会很多,占用存储空间
创建目录
修改如下配置文件 添加
在docker.service中添加
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --graph=/data/docker -H fd://
--containerd=/run/containerd/containerd.sock
启动docker
sudo systemctl daemon-reload
sudo systemctl restart docker
三、安装kubeadm、kubelet、kubectl
1、修改iptables内核参数
确保br_netfilter模块已经被加载
lsmod | grep br_netfilter
如果没有载入,使用下边的命令进行载入
sudo modprobe br_netfilter
2、修改内核参数
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
从所有系统目录中,加载内核参数
3、安装kubeadm, kubelet, kubectl
添加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
EOF
设置SElinux
sudo setenforce 0
sudo sed -i &
设置swap分区
如果是云环境的话,一般都会将swap分区关闭,就不用执行此步骤,如果是物理服务器的话,需要将swap分区关闭
临时关闭swap分区:
永久关闭swap分区:在/etc/fstab文件中,将此行进行注释。
/dev/mapper/centos-swap swap swap defaults 0 0
查看kubelet版本,并安装kubeadm, kubelet and kubectl
yum list kubelet --showduplicates | sort -r
这里要安装对应版本,并启动
sudo yum install kubelet-1.23.17 --disableexcludes=kubernetes -y
sudo yum install kubeadm-1.23.17 -y
sudo systemctl enable --now kubelet
四、初始化master节点
1、修改hosts文件
修改每台master服务器的/etc/hosts文件
10.255.131.211 test-k8s.gwmdevops.com
10.255.131.211 test-prod-k8s-master
10.250.69.2 harbor.gwmdevops.com
2、初始化第一个master节点
首先在第一台master节点中执行
kubeadm init --apiserver-advertise-address=10.255.131.211 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.5 --pod-network-cidr=172.16.0.0/16 \
--service-cidr=172.18.0.0/16 \
--upload-certs
参数解释:
--apiserver-advertise-address:填写本机IP
--image-repository:更换镜像地址
--kubernetes-version:k8s版本
--pod-network-cidr:pod使用IP段
--service-cidr:service使用IP段
--control-plane-endpoint:如果master节点为集群模式,需要为所有控制平面节点设置共享端点。端点可以是负载均衡器的 DNS 名称或 IP 地址。
--upload-certs:上传证书,端口为6443
执行以下命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3、初始化其余master节点
在执行完kubeadm init命令后会出现添加其他master节点的信息,输入其给出的信息。
登录到其他master节点,输入以下命令(初始化第一个master节点的时候屏幕输出对应命令,需要保存待后续使用),进行其它节点的初始化,加入集群
执行自己初始化后生成的信息,下边只是示例:
kubeadm join ncwx-k8s.gwmdevops.com:6443 --token dc2nvx.q2br0epw6yy795ih \
--discovery-token-ca-cert-hash sha256:935a8d9b1472356185e54dd5a28caa1620419e6efb2f3c81963f67c2786ba5d2 \
--control-plane --certificate-key 60c20bba8c03bc281057a9098dad788ad0e2dc53519c649a10fbe26e4a4ee8f7
五、安装calico网络插件
1、安装
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
2、验证
kubectl get pod --all-namespaces

六、添加node节点
1、修改hosts文件
修改每个node节点中/etc/hosts文件的内容。
10.255.131.211 test-k8s.gwmdevops.com
10.250.69.2 harbor.gwmdevops.com
2、添加
在每个节点上执行下边的命令,以下指示示例,根据实际信息输入。
kubeadm join 10.255.131.211:6443 --token r85eay.9kva426kuzaiqc5c \
--discovery-token-ca-cert-hash sha256:ca9896fc5d1ddeedcc4d38f429d7a59521ffc9b2273694e6fa0a4ae4c4b473fd
3、验证
评论