部署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. HTML提交方式post和get区别(实验)

    HTML提交方式post和get区别(实验) 一.post和get区别 get提交,提交的信息都显示在地址栏中. post提交,提交的信息不显示地址栏中,显示在消息体中. 二.客户端代码 <!D ...

  2. Style样式的四种使用(包括用C#代码动态加载资源文件并设置样式)

    Posted on 2012-03-23 11:21 祥叔 阅读(2886) 评论(6) 编辑 收藏 在Web开发中,我们通过CSS来控制页面元素的样式,一般常用三种方式: 1.       内联样式 ...

  3. 《图解Http》8: 用户身份认证Cookie管理session; 9:HTTP的追加协议(websoket, webDAV)

    基本认证,(安全等级低,多数网站不使用) Digest认证:(也不怎么用) SSL客户端认证:(凭借客户端证书认证,如网银登陆) 表单认证:用户名/密码.(常用) SSL客户端认证采用two-fact ...

  4. mysql timestamp的默认值

    当default 0,default '0000-00-00 00:00:00'都失效的时候,请尝试下 ALTER table `coupon_gift` add column `time_end` ...

  5. dp练习(7)—— 最小和

    3415 最小和 CodeVS原创  时间限制: 1 s  空间限制: 64000 KB  题目等级 : 青铜 Bronze 题解       题目描述 Description 小浣熊松松来到文具店, ...

  6. UVALIve 5987 素数

    题目链接:Distinct Primes 如果一个数.至少有三个因子是素数..那么这个数就是prime num.30和42是前两个prime num.问你第n个这种数是谁.(1<=n<=1 ...

  7. html 列表相关信息

    无序列表 无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圆标记) 无序列表始于<ul>标签.每个列表项始于<li> <ul>   <li> ...

  8. java request获取各种数据

    我们经常需要在servlet(j2ee13.jar  javax.servlet.http.HttpServletRequest)中,获取请求request的各种数据信息. 请求的URL:   htt ...

  9. 用正则表达式匹配用rdf3x处理过后的TTL格式文档

    1.比如下面这个用rdf3x处理过后的TTL文档片段: 注意缩进的是两个空格 <http://rdf.ebi.ac.uk/resource/chembl/target/CHEMBL2363853 ...

  10. git在idea中的使用,如何构远程git方仓库

    git 下载:http://learning.happymmall.com/git/   配置用户名:$ git config --glob user.name "forever" ...