部署nginx和应用

部署nginx时我们需要把nginx的配置文件那出来便于以后修改nginx的配置,放置nginx配置文件时我们用k8s的pv的存储方式来存放这些文件

1.安装nfs服务,在kube-node2上安装

  a.安装命令 sudo apt install nfs-kernel-server

  b.配置nfs命令  sudo vi /etc/exports

  添加内容保存退出 /mnt/nfs1  *(rw,sync,no_subtree_check,no_root_squash)

  创建目录 sudo mkdir /mnt/nfs1

设置目录权限 sudo chmod +777 /mnt/nfs1

重启nfs服务  sudo service nfs-kernel-server restart

2.kube-node3,kube-node4安装nfs客户端

  sudo apt install nfs-common 

  在其他2台从机器上挂载

  mount 10.64.10.2:/mnt/nfs1  /mnt/nfs1 

3.nginx pv等pod创建

 将下面文件复制到/mnt/nfs1 命名nginx.yaml

# persistentVolumeReclaimPolicy: Recycle
apiVersion: v1
kind: PersistentVolume
metadata:
name: nginx-pv-log
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-nginx
nfs:
path: /nfsdata/nginx/log
server: 10.64.4.2 ---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nginx-pv-html
spec:
capacity:
storage: 200M
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-nginx
nfs:
path: /nfsdata/nginx/html
server: 10.64.4.2 ---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nginx-pv-cfg
spec:
capacity:
storage: 100M
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-nginx
nfs:
path: /nfsdata/nginx/cfg
server: 10.64.4.2 ---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nginx-pvc-log
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
storageClassName: nfs-nginx ---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nginx-pvc-html
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200M
storageClassName: nfs-nginx ---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nginx-pvc-cfg
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100M
storageClassName: nfs-nginx ---
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 3 # Pod副本数
selector:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
volumeMounts:
- mountPath: /usr/share/nginx/html
name: nginx-html
- mountPath: /etc/nginx/
name: nginx-cfg
- mountPath: /var/log/nginx/
name: nginx-log
volumes:
- name: nginx-html
persistentVolumeClaim:
claimName: nginx-pvc-html
- name: nginx-cfg
persistentVolumeClaim:
claimName: nginx-pvc-cfg
- name: nginx-log
persistentVolumeClaim:
claimName: nginx-pvc-log ---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort
sessionAffinity: ClientIP
selector:
app: nginx
ports:
- port: 80
nodePort: 30080

  执行命令kubectl apply -f nginx.yml

访问10.64.4.3:30080可以看到nginx页面

k8s dockerk个人学习(2)的更多相关文章

  1. k8s dockerk个人学习(1)

    虚拟机部署k8s 1. 创建虚拟机 虚拟机用的是virtualBox和vagrant工具,百度安装virtualBox和vagrant 创建vagrant目录并创建文件Vagrantfile内容为 V ...

  2. dockerk个人学习(0)

    接下来几篇记录学习docker和ks的部署搭建环境和应用部署等

  3. k8s的chart学习(下)

    1.开发自己的chart Kubernetes 给我们提供了大量官方 chart,不过要部署微服务应用,还是需要开发自己的 chart,下面就来实践这个主题. 1.1创建 chart 执行 helm ...

  4. k8s的chart学习(上)

    chart 是 Helm 的应用打包格式.chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所需要的资源,比如 Service.Deployment.PersistentV ...

  5. Android开发学习4

    学习内容: 1.RecyclerView 2.WebView

  6. k8s的网络学习

    1.Kubernetes 网络模型 Kubernetes 采用的是基于扁平地址空间的网络模型,集群中的每个 Pod 都有自己的 IP 地址,Pod 之间不需要配置 NAT 就能直接通信.另外,同一个 ...

  7. K8s & Openshift案例学习

    1. openshift排错技巧:https://mp.weixin.qq.com/s?__biz=MzAwMDc2NjQ4Nw==&mid=2663494178&idx=1& ...

  8. .NET Core on K8S快速入门课程学习笔记

    课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 目录 01-介绍K8s是什么 02-为什么要学习k8s 03-如何学习k8s ...

  9. k8s学习

    k8s简介 在学习k8s之前,相信大家和我一样,肯定都学习和使用过docker容器,并且对容器技术有了一个基本的认识.引用张磊老师的总结:其实一个"容器",实际上是一个由Linux ...

随机推荐

  1. WebAPI获取客户端请求数据

    1.什么是WebAPI,详见:http://www.cxyclub.cn/n/25123/2.一般情况下我们不需要去关心客户端的请求数据,WebAPI会通过自己的方式去将客户端请求的数据转换为实体对象 ...

  2. ajax思维导图

  3. 52 53django

    一.需要弄清楚的几个关键点: KEY: 1 Django项目无论多大,只是一个应用程序 2 地址栏发请求默认是GET请求 form表单可以发送get请求,也可以发送post请求 3 浏览器接受的响应体 ...

  4. Tree Cutting (Hard Version) CodeForces - 1118F2 (树形DP,计数)

    大意:给定树, 每个点有颜色, 一个合法的边集要满足删除这些边后, 每个连通块内颜色仅有一种, 求所有合法边集的个数 $f[x][0/1]$表示子树$x$中是否还有与$x$连通的颜色 对于每种颜色已经 ...

  5. mac 安装nginx,并配置nginx的运行环境

    1. 安装nginx // 查询有没有nginx brew search nginx //开始安装nignx brew install nginx 2. 检查nignx是否安装成功 nginx -V ...

  6. Python基础--Python简介和入门

    ☞写在前面 在说Python之前,我想先说一下自己为什么要学Python,我本人之前也了解过Python,但没有深入学习.之前接触的语言都是Java,也写过一些Java自动化用例,对Java语言只能说 ...

  7. Charles安装破解、抓取https请求及常见问题解决方法

    现在基本大部分网站都使用了https,所以要想抓到https的请求,首要任务是先有工具:charles.fiddler,先介绍下charles针对https请求的抓取方法,此方法兼容windows和m ...

  8. python-day47--mysql数据备份与恢复

    一.IDE工具介绍 掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 #6. 备份库/表 #注意: 批量加注释:ctrl+ ...

  9. Eclipse重命名项目名后如何彻底修改工程名

    背景:在Eclipse中当我们修改了一个Web项目名称后,在再次运行该项目,发现使用新的名称无法正常的浏览,而用旧的名称去可以 解决方案: 1:修改该项目目录下:.project文件 <?xml ...

  10. 图片上传--Upload

    图片上传--Upload 图片上传基于spring框架写的代码: 1.首先:我们要再springmvc中添加试图解析器: <!-- 图片解析器 --> <bean id=" ...