去年恶补k8s,产生一些成果物,在此分享。
k8s集群安装nfs-utils
#1、master上安装
yum install -y nfs-utils rpcbind
#2、把主服务器作为文件共享服务器
mkdir -p /home/shareData/
#3、暴露端口
vim /etc/exports
#写入
/home/shareData 10.0.4.0/24(rw,sync) #iP范围 rw(可读可写)sync(同步写入)
#4、启动服务
systemctl start nfs.service
systemctl enable nfs.service
systemctl start rpcbind.service
systemctl enable rpcbind.service
#5、查看是否成功
exportfs
#6、去节点服务器设置
yum install -y nfs-utils
#7、查看主服务器节点
showmount -e 10.0.4.11 #masterIP
#8、挂载
mount 10.0.4.11:/home/shareData /home/shareData
k8s集群rinted安装
netstat -tulpn #查看所有端口
wget https://boutell.com/rinetd/http/rinetd.tar.gz
tar -zxvf rinetd.tar
cd rinetd
sed -i 's/65536/65535/g' rinetd.c #修改端口范围
yum install -y gcc
mkdir -p /usr/man/man8
make && make install
[root@localhost rinetd]# vim /etc/rinted.conf
0.0.0.0 80 192.168.122.11 80 #将本机的80端口转发到另一台机器80,IP 地址0.0.0.0 会将rinetd 绑定到任何可用的本地IP地址上
logfile /var/log/rinetd.log #指定日志输出位置
#启动、关闭:
[root@localhost rinetd]# /usr/sbin/rinetd -c /etc/rinetd.conf
[root@localhost rinetd]# pkill rinetd
k8s部署tomcat
#解析的apiVersion版本 一般写死
apiVersion: apps/v1
# 说明yml文件的用途
kind: Deployment
#部署文件的名称
metadata:
name: tomcat-deploy
#部署的详细内容
spec:
#部署集群的数量
replicas: 2
selector:
matchLabels:
app: tomcat-cluster
template:
metadata:
#标签
labels:
#pod的名称
app: tomcat-cluster
spec:
containers:
#通常名字与app名字保持一致
- name: tomcat-cluster
#镜像来源,可以公有和私有仓库
image: tomcat:latest
imagePullPolicy: IfNotPresent
ports:
#容器内对外暴露的端口
- containerPort: 8080
volumeMounts: #挂载容器中的目录到pvc nfs中的目录
- name: webapps
mountPath: /usr/local/tomcat/webapps
volumes:
- name: webapps
persistentVolumeClaim: #指定pvc
claimName: tomcat-pvc-webapps
k8s映射tomcat服务
#apiVersion版本
apiVersion: v1
#作用
kind: Service
metadata:
name: tomcat-service
labels:
app: tomcat-service
spec:
#开启端口对tomcat的端口映射
# type: NodePort
selector:
#指向pod中名称为tomcat-cluster的pod 即tomcat-deployment中labels中的app对应的内容
app: tomcat-cluster
ports:
#服务的接受端口 即访问端口
- port: 8000
#指向内容内部的端口
targetPort: 8080
#每个容器对外暴露的端口
# nodePort: 32500
k8s创建pv
apiVersion: v1
kind: PersistentVolume
metadata:
name: tomcat-pv-webapps
labels:
pv: tomcat-pv-webapps
spec:
capacity: # 容量配置
storage: 5Gi
volumeMode: Filesystem # 卷的模式,目前支持Filesystem(文件系统) 和 Block(块),其中Block类型需要后端存储支持,默认为文件系统
accessModes: # PV的访问模式
- ReadWriteMany
persistentVolumeReclaimPolicy: Recycle # 回收策略
storageClassName: nfs # PV的类,一个特定类型的PV只能绑定到特定类别的PVC
nfs: # NFS服务配置
path: /home/shareData
server: 10.0.4.11
k8s创建pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: tomcat-pvc-webapps
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
selector:
matchLabels:
pv: tomcat-pv-webapps #关联pv 的label,key/value要一致
storageClassName: nfs