联系管理员

开通文章发布权限

扫码 添加微信
微信图片
电话:18888888888 QQ:

K8S集群搭建手册(集群版)

kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。

一、环境相关

Docker

 

系统版本软件版本部署方式部署路径数据路径日志路径
Centos 7.620.10.14yum安装N/A/data/dockerN/A

k8s

 

系统版本软件版本部署方式部署路径数据路径日志路径
Centos 7.61.23.5Kubadmin安装N/AN/AN/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 &#039;s/^SELINUX=enforcing$/SELINUX=permissive/&#039; /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镜像文件会很多,占用存储空间
创建目录

mkdir -p /data/docker

修改如下配置文件 添加

--graph=/data/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

从所有系统目录中,加载内核参数

sudo sysctl --system

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 &#039;s/^SELINUX=enforcing$/SELINUX=permissive/&#039; /etc/selinux/config

设置swap分区

如果是云环境的话,一般都会将swap分区关闭,就不用执行此步骤,如果是物理服务器的话,需要将swap分区关闭
临时关闭swap分区:

swapoff -a

永久关闭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

图片#B #S #R #60% #auto

六、添加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、验证

kubectl get nodes

相关文章

neo4j部署手册
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
DataX和DataX-WEB 安装步骤
DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、 MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。
K8S集群搭建手册(集群版)
kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Apollo部署手册
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

评论

快捷导航

把好文章收藏到微信

打开微信,扫码查看

关闭

还没有账号?立即注册