更新时间:2024-05-07 GMT+08:00
分享

软件安装

智慧教育数据中台、基础支撑平台(统一用户认证管理、数字校园统一信息门户、岗位角色管理)、校园管理平台。

安装前环境配置

操作系统初始化工作。

## 配置系统
###### 关闭 防火墙
systemctl stop firewalld
systemctl disable firewalld
###### 关闭 SeLinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
###### 关闭 swap
swapoff -a
yes | cp /etc/fstab /etc/fstab_bak
cat /etc/fstab_bak |grep -v swap > /etc/fstab
###### yum epel源
yum install wget telnet -y
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo “镜像源地址”/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo “镜像源地址”/epel-7.repo
yum clean all
yum makecache
###### 修改 /etc/sysctl.conf
modprobe br_netfilter
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
EOF
sysctl -p /etc/sysctl.d/k8s.conf
###### 开启 ipvs
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
# 设置 yum repository
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-manager --add-repo “镜像源地址”/docker-ce.repo
# 安装并启动 docker
yum install -y docker-ce-18.09.8 docker-ce-cli-18.09.8 containerd.io
# 添加ipvs支持
yum install -y nfs-utils ipset ipvsadm

etcd集群软件安装

表1 etcd集群软件安装

在master1上安装cfssl

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64
mv cfssl_linux-amd64 /usr/local/bin/cfssl
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

安装etcd二进制文件

# 创建目录
mkdir -p /data/etcd/bin
# 下载
cd /tmp
wget https://storage.googleapis.com/etcd/v3.3.25/etcd-v3.3.25-linux-amd64.tar.gz
tar zxf etcd-v3.3.25-linux-amd64.tar.gz
cd etcd-v3.3.25-linux-amd64
mv etcd etcdctl /data/etcd/bin/

创建ca证书,客户端,服务端,节点之间的证书

Etcd属于server ,etcdctl 属于client,二者之间通过http协议进行通信。

创建目录

创建ca证书

生成客户端证书

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client client.json  | cfssljson -bare client -

生成server,peer证书

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server etcd.json | cfssljson -bare server
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer etcd.json | cfssljson -bare peer

将master01的/data/etcd/ssl目录同步到master02和master03上

scp -r /data/etcd etcd2:/data/etcd
scp -r /data/etcd etcd3:/data/etcd

etcd systemd配置文件

vim /usr/lib/systemd/system/etcd.service

三台主机配置不一样用的时候把注释尽量删除

启动etcd集群

systemctl daemon-reload
systemctl enable etcd
systemctl start etcd
systemctl status etcd

安装kubeadm,kubelet,kubectl

所有节点安装kubeadm,kubelet。kubectl是可选的,可以安装在所有机器上,也可以只安装在一台master1上。

yum install -y kubelet kubeadm kubectl

在所有安装kubelet的节点上,将kubelet设置为开机启动

systemctl enable kubelet

初始化master

表2 初始化master

在master1上将搭建etcd时生成的的ca证书和客户端证书复制到指定地点并重命名

mkdir -p /etc/kubernetes/pki/etcd/
#etcd集群的ca证书
cp /data/etcd/ssl/ca.pem /etc/kubernetes/pki/etcd/
#etcd集群的client证书,apiserver访问etcd使用
cp /data/etcd/ssl/client.pem /etc/kubernetes/pki/apiserver-etcd-client.pem
#etcd集群的client私钥
cp /data/etcd/ssl/client-key.pem /etc/kubernetes/pki/apiserver-etcd-client-key.pem

创建初始化配置文件

kubeadm config print init-defaults > kubeadm-init.yaml

执行初始化

kubeadm init --config=kubeadm-init.yaml

配置kubectl

要使用 kubectl来 管理集群操作集群,需要做如下配置

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

测试下,kubectl是否正常,需要注意此时master1的notready状态是正常的,因为尚未部署网络插件

[root@master01] # kubectl get node
NAME       STATUS     ROLES    AGE   VERSION
master01   NotReady   master   66s   v1.19.2

添加master02和master03

首先将 master1中的生成的集群共用的ca证书,scp到其他master机器

scp -r  /etc/kubernetes/pki/* master02:/etc/kubernetes/pki/

将初始化配置文件复制到master2

scp kubeadm-init.yaml master02:/root/

初始化master2

修改后初始化具体修改内容根据上面的标准文件注释修改

Kubeadm init --config=kubeadm-init.yaml

将worker节点加入集群

在master01上生成加入key

kubeadm token create --print-join-command

在其他worker节点执行

ubeadm join master:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash \
sha256:fb4e252253b55974edff65cb4765e9979f8785cd67a6ed41f87c83c6bcc3ac4a

将代码打包到git仓库

图1 编译好的工程文件通过docker build 进行编译

图2 通过docker push 将工程文件打包到git仓库

K8s应用部署

K8s登录后,单击左侧“Deployments”菜单,单击右侧的“+”按钮,可进入到应用添加页面。

图3 进入应用添加页面

进入到应用添加页面,填入应用名,输入git仓库名称、工作区、端口映射,单击保存,完成应用添加,如下图:

图4 应用添加页面

相关文档