部署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. R—读取数据(导入csv,txt,excel文件)

    导入CSV.TXT文件 read.table函数:read.table函数以数据框的格式读入数据,所以适合读取混合模式的数据,但是要求每列的数据数据类型相同. read.table读取数据非常方便,通 ...

  2. English trip -- VC(情景课)2 D Reading

    Xu言: 业精于勤,荒于嬉:行成于思,毁于随 Before you read 阅读准备 Talk about the picture, what do you see?看图说话,你看到了什么? Lis ...

  3. linux使用flock文件锁

    使用linux flock 文件锁实现任务锁定,解决冲突 格式: flock [-sxun][-w #] fd# flock [-sxon][-w #] file [-c] command flock ...

  4. linux系统方面的知识

      1.什么是Linux? 组成部分:硬件.内核.lib库.应用程序   硬件:工作中真正工作的组成部分是硬件   linux内核(kernel):管理硬件 Linux团队管理的版本   lib库:封 ...

  5. LeetCode--217--存在重复元素

    问题描述: 给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 1: 输入: [1,2,3,1] 输出 ...

  6. 百度安卓SDK秘钥Key错误

    下载官方安卓地图demo,输入报名和sha1申请AK,发现key错误 构建的时候要指定生成的key 安卓定位BaiduLocDemo出现aapt.exe finished with non-zero ...

  7. CentOS7 install apache

    1. yum install httpd 2. config /etc/httpd/conf/httpd.conf <VirtualHost *:80>  ServerName www.l ...

  8. MySQL缓存机制

    对MySql查询缓存及SQL Server过程缓存的理解及总结 一.MySql的Query Cache 1.Query Cache   MySQL Query Cache是用来缓存我们所执行的SELE ...

  9. 信号处理函数的返回setjmp/longjmp

    信号处理函数可以正常返回,也可以调用其他函数返回到程序的主函数中,而不是从该处理程序返回. 正如ANSI C标准所说明的,一个信号处理程序可以返回或者调用abort.exit或longjmp(goto ...

  10. mybatis标签之——<trim>

    trim标记是一个格式化的标记,主要用于拼接sql的条件语句(前缀或后缀的添加或忽略),可以完成set或者是where标记的功能. trim属性主要有以下四个  prefix:前缀覆盖并增加其内容   ...