1、二进制安装K8s 之 环境准备
二进制安装K8s 之 环境准备
1、系统&软件
| 序号 | 设备\系统 | 版本 |
|---|---|---|
| 1 | 宿主机 | MacBook Pro 11.4 |
| 2 | 系统 | Centos 7.8 |
| 3 | 虚拟机 | Parallels Desktop 16 for Mac |
二、规划和软件版本
1、IP规划
| 序号 | 角色 | IP | 备注 |
|---|---|---|---|
| 1 | master01 | 192.168.100.170 | etcd、kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy(即使k8s master也是k8s node、etcd) |
| 2 | master02 | 192.168.100.171 | etcd、kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy (即使k8s master也是k8s node、etcd) |
| 3 | node1 | 192.168.100.172 | etcd、kubelet、kube-proxy (k8s node、etcd) |
| 4 | node2 | 192.168.100.173 | kubelet、kube-proxy (k8s node) |
| 5 | registry | 192.168.100.174 | harbor (docker image 私有仓库) |
| 6 | gitlab | 192.168.100.175 | gitlab (代码仓库) |
| 7 | LB01 | 192.168.100.176 | nginx、lvs (负载均衡master) |
| 8 | LB02 | 192.168.100.177 | nginx、lvs (负载均衡master) |
| 9 | 虚拟ip | 192.168.100.178 | lvs 虚拟ip |
2、软件版本
软件版本不同,操作也会有所不同,一定要注意版本
| 序号 | 软件 | 版本 |
|---|---|---|
| 1 | kubeenetes | v1.20.9 |
| 2 | docker | v20.10.7 |
| 3 | docker-compos | v1.29.2 |
| 4 | helm | v3.6.3 |
| 5 | etcd | v3.4.15 |
| 6 | harbor | v2.3.1 |
| 7 | gitlab | v14.1.2 |
| 9 | jenkins | v2.289.3 |
三、内核升级【非必需升级,但是要满足docker、k8s需求】
uname -sr
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum clean all && yum -y update
yum -y --enablerepo=elrepo-kernel install kernel-ml
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
#关键步骤,选择开机启动的默认内核
grub2-set-default
四、虚拟机需要检查product_uuid ,因为虚拟机使用的clone镜像,所以基本都样,如果你使用是mac + PD,请看我另一篇文章,修改UUID。
1、uuid 一样会导致k8s集群出问题,如果一样需要自行修改,你可以使用命令 ip link 或 ifconfig -a 来获取网络接口的 MAC 地址
#查看网卡的uuid,每一台都要检测
ifconfg
#对 product_uuid 校验,每一台都要检测
cat /sys/class/dmi/id/product_uuid
2、修改主机名
# 根据自己需要设置
hostnamectl set-hostname k8s-master01
3、关闭防火墙selinux和Swap
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
# 永久:
sed -i 's/enforcing/disabled/' /etc/selinux/config
#临时关闭
setenforce 0
# 修改/etc/fstab永久关闭Swap
cp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')
# CentOS
sed -i "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab
# 修改后重新挂载全部挂载点
mount -a
# 查看Swap
free -m
cat /proc/swaps
4、修改hosts
便于解析
cat >> /etc/hosts << EOF
192.168.100.170 k8s-master01
192.168.100.171 k8s-master02
192.168.100.172 k8s-node01
192.168.100.173 k8s-node02
192.168.100.174 k8s-registey
192.168.100.174 registry.com
192.168.100.175 gitlab.registry.com
EOF
5、部署calico网络需要
将桥接的IPv4流量传递到iptables的链:
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 生效
sysctl --system
时间同步:
yum install ntpdate -y
ntpdate time.windows.com
6、安装docker
- 安装docker 自由选择二进制安装或者yum安装
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
- 创建docker 国内镜像仓库地址 配置文件
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"]
}
EOF
- 启动并设置开机启动
systemctl daemon-reload
systemctl start docker
systemctl enable docker
7、创建 部署所需目录:k8s、docker 、calico、etcd、dockfile等
mkdir /data/{docker/TSL/{etcd,k8s},etcd/{bin,config,ssl},k8s/{bin,config,ssl,logs,calico/{bin,config,ssl}}} -p
mkdir /data/docker/{dockercompose,dockerfile,imagefile} -p
#目录说明
/data/etcd/
├── bin
├── config
└── ssl
/data/k8s/
├── bin
├── calico
│ ├── bin
│ ├── config
│ └── ssl
├── config
├── deplotment
├── logs
└── ssl
/data/docker/
├── dockercompose
├── dockerfile
└── TSL
├── etcd
└── k8s
1、二进制安装K8s 之 环境准备的更多相关文章
- 10、二进制安装K8s之部署CoreDNS 和Dashboard
二进制安装K8s之部署CoreDNS 和Dashboard CoreDNS 和Dashboard 的yaml文件在 k8s源代码压缩包里面可以找到对应的配置文件,很多人从网上直接下载使用别人的,会导致 ...
- 7、二进制安装K8s之部署kube-proxy
二进制安装K8s之部署kube-proxy 1.创建配置文件 cat > /data/k8s/config/kube-proxy.conf << EOF KUBE_PROXY_OPT ...
- 8、二进制安装K8s之部署CIN网络
二进制安装K8s之部署CIN网络 部署CIN网络可以使用flannel或者calico,这里介绍使用calico ecd 方式部署. 1.下载calico二进制安装包 创建所需目录 mkdir -p ...
- 9、二进制安装K8s之增加node
二进制安装K8s之增加node 1.复制文件,要部署几台就直接复制即可 #二进制文件 scp /data/k8s/bin/{kubelet,kube-proxy} root@192.168.100.1 ...
- 6、二进制安装K8s之部署kubectl
二进制安装K8s之部署kubectl 我们把k8s-master 也设置成node,所以先master上面部署node,在其他机器上部署node也适用,更换名称即可. 1.在所有worker node ...
- 3、二进制安装K8s之部署kube-apiserver
二进制安装K8s之部署kube-apiserver 一.生成 kube-apiserver 证书 1.自签证书颁发机构(CA) cat > ca-config.json <<EOF ...
- 4、二进制安装K8s 之 部署kube-controller-manager
二进制安装K8s 之 部署kube-controller-manager 1.创建配置文件 cat > /data/k8s/config/kube-controller-manager.conf ...
- 5、二进制安装K8s 之 部署kube-scheduler
二进制安装K8s之部署kube-scheduler 1.创建配置文件 cat > /data/k8s/config/kube-scheduler.conf << EOF KUBE_S ...
- 2、二进制安装K8s 之 部署ETCD集群
二进制安装K8s 之 部署ETCD集群 一.下载安装cfssl,用于k8s证书签名 二进制包地址:https://pkg.cfssl.org/ 所需软件包: cfssl 1.6.0 cfssljson ...
随机推荐
- NIO 输入输出
NIO 是java14 API 提供的一种新输入输出流,一套用于标准IO的文件读写,一套用于网络编程. 1. NIO 与IO 的区别 IO流以字节流输入输出,一次以一个字节进行数据操作,效率慢: NI ...
- Selenium启动Chrome浏览器提示“请停用以开发者模式运行的扩展程序”的解决办法
安装了python selenium,运行下面代码: 1 from selenium import webdriver 2 3 browser = webdriver.Chrome() 4 brows ...
- 让我手把手教你写一个强大、方便使用的 IOC 容器
一.介绍 1.介绍 最近无聊,也没什么事做,没事做总是要给自己找点事情做吧,毕竟人的生活在与折腾.于是,决定自己手动写一个 IOC 的框架.我们知道在 NetCore 的版本里面已经内置了 IOC 容 ...
- mysql中函数cast使用
CAST函数语法规则是:Cast(字段名 as 转换的类型 ),其中类型可以为: CHAR[(N)] 字符型DATE 日期型DATETIME 日期和时间型DECIMAL float型SIGNED in ...
- python -- 面向对象编程(继承、重写)
一.继承 子类可以继承父类的所有公有成员,但不能直接访问父类的私有成员,只能通过父类的公有方法间接访问私有属性或私有方法. 如: class DerviedClassName(BaseClassNam ...
- python3执行.sql文件
这个脚本主要是遍历执行文件夹下的sql文件,但是没有辨别文件的格式,所以文件夹下只能够放.sql文件,否则会报错哈. 我的sql文件夹与执行的文件平级,所以dir_path就是sql,大家依照自己的路 ...
- POJ1944
poj1944 一道我不会做的贪心题. (思维才是OI的重点) 但是if您也不会,那就来听我瞎扯吧. 首先,这个图是一个圈,只能连接邻点,使所有求的点联通. 我们先不考虑环,那么就可以想出一个假的做法 ...
- 【洛谷P5008 逛庭院】tarjan缩点+贪心
既然没有题解,那么我就来提供给一份. -- 首先我们看到数据范围.妈耶!数据这么大,一开始还想用个DP来做,但是看着就不行,那么根据这个数据范围,我们大致可以猜到这道题的算法是一个贪心,那么我们怎么贪 ...
- 纯C语言(C89)实现简单链表
起因 工作很少接触纯C项目,业余写着玩玩,不断雕琢 目标 纯C实现简单链表,提供方便易用泛型接口,避免依赖 实现 完全封装,隐藏结构体细节,不支持栈创建 拷贝存储,轻微性能代价换来易用性 list.h ...
- 前端构建第1篇之---引入elementUI
张艳涛 写于2021-1-19 HOW:如何引入elementui? 在项目根目录package.json引入,在重新执行npm install "dependencies": { ...