软件安装
智慧教育数据中台、基础支撑平台(统一用户认证管理、数字校园统一信息门户、岗位角色管理)、校园管理平台。
安装前环境配置
操作系统初始化工作。
## 配置系统 ###### 关闭 防火墙 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集群软件安装
在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
在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仓库
K8s应用部署
K8s登录后,单击左侧“Deployments”菜单,单击右侧的“+”按钮,可进入到应用添加页面。
进入到应用添加页面,填入应用名,输入git仓库名称、工作区、端口映射,单击保存,完成应用添加,如下图: