【K8S]二进制安装单master单node集群: 环境搭建

网友投稿 257 2022-09-09

【K8S]二进制安装单master单node集群: 环境搭建

实验环境规划

Pod网段:     10.0.0.0/16

Service网段:  10.255.0.0/16

操作系统:centos7.6

配置: 4Gib内存/4vCPU/100G硬盘

网络:NAT

K8S集群角色

Ip

主机名

安装的组件

控制节点

192.168.2.70

two-master

apiserver、controller-manager、scheduler、etcd、docker

工作节点

192.168.2.71

two-node

kubelet、kube-proxy、docker、calico、cordns

1.主机初始化

对每一台k8s节点主机均做一些基础的配置,如内核升级、时间同步、关闭selinux、firewalld等。

配置/etc/hosts

$ cat <>/etc/hosts192.168.2.70 two-master192.168.2.71 two-nodeEOF

内核升级

每台节点都操作!必须操作,内核太低会出现很多问题,需要上传kernel内核包进行安装升级

$ grub2-install /dev/sda$ rpm -ivh kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm$ vim /etc/default/grub //修改内核启动顺序 GRUB_DEFAULT=0 //GRUB_DEFAULT=saved中,将saved修改为0

重新编译内核启动文件

$ grub2-mkconfig -o /boot/grub2/grub.cfg

查看默认启动的内核

$ awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 0 : CentOS Linux (4.19.12-1.el7.elrepo.x86_64) 7 (Core)1 : CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)2 : CentOS Linux (0-rescue-35ac0fa1f7924eb18b1c0697c294d34d) 7 (Core)

重启主机后查看内核版本

$ reboot $ uname -r4.19.12-1.el7.elrepo.x86_64

注:

内核升级完成后需要重启主机,然后使用uname -r查看内核版本是否升级成功。

配置时间同步

所有节点皆同样操作

$ yum install chrony -y$ vim /etc/chrony.confserver 192.168.2.22 iburst $ systemctl restart chronyd && systemctl enable chronyd$ chronyc sources -vMS Name/IP address Stratum Poll Reach LastRx Last sample ===============================================================================^* 192.168.2.22 10 6 17 11 +599ns[ +156us] +/- 1148us

创建目录

创建证书目录

主要存放证书文件,/etc/kubernetes/pki/etcd下存放etcd的证书。

$ mkdir -p /etc/kubernetes/pki/etcd #master节点创建$ mkdir -p /etc/kubernetes/pki/ #node节点创$ mkdir /var/log/kubernetes #日志文件存放路径

安装签发证书工具cfssl

在master节点上二进制安装cfssl证书签发工具

把cfssl-certinfo_linux-amd64  cfssljson_linux-amd64  cfssl_linux-amd64上传

$ mv cfssl_linux-amd64 /usr/local/bin/cfssl$ mv cfssljson_linux-amd64 /usr/local/bin/cfssljson$ mv cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo$ chmod +x /usr/local/bin/cfssl*

创建证书颁发者

我们是自签证书,就需要自己创建一个证书颁发机构(CA)来向etcd、apiserver颁发证书。在master节点操作,再将制作好的证书发送到其它节点即可。

生成ca证书请求文件

请求文件类似于申请表,记录的“姓名”、加密算法、地址、有效期等信息。

$ pwd/etc/kubernetes/pki$ cfssl print-defaults csr > ca-csr.json #生成默认的请求文件$ vim ca-csr.json #修改部分参数{ "CN": "kubernetes", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "BeiJing", "L": "BeiJing", "O": "k8s", "OU": "system" } ], "ca": { "expiry": "87600h" }}

hosts:包含的授权范围,不在此范围的的节点或者服务使用此证书就会报证书不匹配错误,证书如果不包含可能会出现无法连接的情况,这里需要删除。

Key: 指定使用的加密算法,一般使用rsa非对称加密算法(algo:rsa;size:2048)

CN:Common Name,kube-apiserver 从证书中提取该字段作为请求的用户名 (User Name);浏览器使用该字段验证网站是否合法;CN是域名,也就是你现在使用什么域名就写什么域名。

C:国家(CN中国)

ST:类似省份(如湖南省等)

L:城市(如北京市)

O:Organization,kube-apiserver 从证书中提取该字段作为请求用户所属的组 (Group);

初始化CA

$ cfssl gencert -initca ca-csr.json | cfssljson -bare ca2022/06/07 15:19:23 [INFO] generating a new CA key and certificate from CSR2022/06/07 15:19:23 [INFO] generate received request2022/06/07 15:19:23 [INFO] received CSR2022/06/07 15:19:23 [INFO] generating key: rsa-20482022/06/07 15:19:23 [INFO] encoded CSR2022/06/07 15:19:23 [INFO] signed certificate with serial number 19072867977460617057365796602350389619956771156$ lsca.csr ca-csr.json ca-key.pem ca.pem etcd

初始化成功后会生成三个文件:

ca.csr:CA根证书; ca-key.pem:CA证书颁发者的私钥; ca.pem:CA证书颁发者的公钥

创建CA配置文件

CA证书颁发者颁发证书的时候会根据该配置进行颁发。

$ cfssl print-defaults config > ca-config.json #生成默认的配置文件$ vim ca-config.json { "signing": { "default": { "expiry": "87600h" }, "profiles": { "kubernetes": { "expiry": "87600h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] } } }}

default.expiry:默认证书有效期(单位:h)

profiles.kubernetes:为服务使用该配置文件颁发证书的配置模块;

signing:签署,表示该证书可用于签名其它证书;生成的 ca.pem 证书中 CA=TRUE;

key encipherment:密钥加密;

profiles:指定了不同角色的配置信息;可以定义多个 profiles,分别指定不同的过期时间、使用场景等参数;后续在签名证书时使用某个 profile。

server auth:服务器身份验证;表示 client 可以用该 CA 对 server 提供的证书进行验证;

client auth:客户端身份验证;表示 server 可以用该 CA 对 client 提供的证书进行验证;

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:全媒派:关社媒办杂志,Bottega Veneta的传播策略其他品牌能学吗?
下一篇:详解kubernetes备份恢复利器 Velero | 深入了解Carina系列第三期
相关文章

 发表评论

暂时没有评论,来抢沙发吧~