kubernetes session保持、容器root特权模式开启、多端口容器service 2个端口开启等设置
session保持
如何在service内部实现session保持呢?当然是在service的yaml里进行设置啦。
在service的yaml的sepc里加入以下代码:
sessionAffinity: ClientIP
sessionAffinityConfig:
clientIP:
timeoutSeconds:
这样就开启了session保持。下面的timeoutSeconds指的是session保持的时间,这个时间默认是10800秒,也就是三个小时。
那么原理是啥呢?当不设置session保持时,service向后台pod转发规则是轮询。当设置了session保持之后,k8s会根据访问的ip来把请求转发给他以前访问过的pod,这样session就保持住了。
容器root权限
你一定很奇怪,明明进入容器内,可以看到是root用户啊,为什么还要设置容器的root权限?这是因为容器内虽然看起来是root,但是却没有root的所有功能。当需要修改系统文件时,就不被允许。如果你的app恰好就要去修改系统文件,那么就需要明白如何设置容器的root权限。
想要开启容器的root权限,需要做以下操作:
1.设置kube-apiserver与kubelet的
-allow-privileged=true
这样就允许节点上的容器开启privileged。
怎么看当前是不是为true呢?
ps -ef|grep kube
然后仔细看,你就会看到是不是为true。
那么如何设置以上参数呢?
因为kube-apiserver与kubelet都是通过二进制文件直接运行的,所以直接在重启时加入以上参数就行。更简单的是,如果已经设置了systemd启动,那么就去/etc/systemd/system/下找到对应的.service文件,改里面的参数,然后通过systemctl命令直接重启就行。
2.设置包含contariners的yaml文件(如deploy的yaml文件),在containers下添加:
securityContext:
privileged: true
例如pod的yaml文件:
apiVersion: v1
kind: Pod
metadata:
name: hello-world
spec:
containers:
- name: hello-world-container
# The container definition
# ...
securityContext:
privileged: true
这个很好理解,但是切记要把这个与podSecurityContext分开。
podSecurityContext是在pod.spec内的属性,虽然它也写作securityContext
securityContext是container内的属性
podSecurityContext的例子如下:
apiVersion: v1
kind: Pod
metadata:
name: hello-world
spec:
containers:
# specification of the pod’s containers
# ...
securityContext:
fsGroup:
supplementalGroups: []
seLinuxOptions:
level: "s0:c123,c456"
多端口容器
如果app需要开放两个端口,该怎么办呢?
有两种办法,
- 第一种是起2个service,每个service开放一个端口
- 第二种是同一个service开放2个端口
下面分析两种方法。
起两个service
明明可以用一个service搞定,为什么还要起两个service呢?我认为是让service更清晰,一个service负责一种服务。
例如,有个app,同时开发9200与9300端口。9200提供web服务,9300提供api。那么,用两个service,分别命名为app-http与app-api,分别暴露9200与9300端口,分别为nodePort与clusterIP方式,这样层次清晰。
同一个service开2个端口
一般我们只有一个端口的时候,在service的yaml文件:
ports:
- nodePort:
port:
protocol: TCP
targetPort:
而如果你想开两个端口,直接复制粘贴可不行,k8s会提示你必须要加上name。所以,如果要开多端口,要为每个port都指定一个name,如:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: MyApp
ports:
- name: http
protocol: TCP
port:
targetPort:
- name: https
protocol: TCP
port:
targetPort:
https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
转:https://blog.csdn.net/bingzhilingyi/article/details/79862791
kubernetes session保持、容器root特权模式开启、多端口容器service 2个端口开启等设置的更多相关文章
- kubernetes session and 容器root权限
session保持 如何在service内部实现session保持呢?当然是在service的yaml里进行设置啦. 在service的yaml的sepc里加入以下代码: sessionAffinit ...
- docker 开启特权模式
可以在创建容器时通过 --privileged=true 开启特权模式. 创建容器: # docker run -d --name centos7 --privileged=true centos7: ...
- Docker 网络模式详解及容器间网络通信
当项目大规模使用 Docker 时,容器通信的问题也就产生了.要解决容器通信问题,必须先了解很多关于网络的知识.Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜 ...
- K8S 使用 SideCar 模式部署 Filebeat 收集容器日志
对于 K8S 内的容器日志收集,业内一般有两种常用的方式: 使用 DaemonSet 在每台 Node 上部署一个日志收集容器,用于收集当前 Node 上所有容器挂载到宿主机目录下的日志 使用 Sid ...
- 使用dotnet-monitor分析在Kubernetes的应用程序:Sidecar模式
dotnet-monitor可以在Kubernetes中作为Sidecar运行,Sidecar是一个容器,它与应用程序在同一个Pod中运行,利用Sidecar模式使我们可以诊断及监控应用程序. 如下图 ...
- tomcat源码解读(2)–容器责任链模式的实现
责任链模式:责任链模式可以用在这样的场景,当一个request过来的时候,需要对这个request做一系列的加工,使用责任链模式可以使每个加工组件化,减少耦合.也可以使用在当一个request过来的时 ...
- Ubuntu Linux---控制用户权限:root特权/sudo
借了本<Ubuntu Linux指南>开始学学乌邦图吧,熟悉之后再下个红帽来玩玩,现在说说我们一直提到的root,但是在Linux中,这个root有所不同...大多数Linux系统都为一个 ...
- 《网络》:设置三个密码:通过console口连接设备,进入特权模式,登录Telnet
软件:Cisco Packet Tracer Instructor 软件下载链接在上一篇文章中. 内容:通过设置三个密码,熟悉采用Telnet方式配置交换机的方法. 细节说明:计算机的IP地址和交换机 ...
- 设计模式学习笔记(十六)迭代器模式及其在Java 容器中的应用
迭代器(Iterator)模式,也叫做游标(Cursor)模式.我们知道,在Java 容器中,为了提高容器遍历的方便性,把遍历逻辑从不同类型的集合类中抽取出来,避免向外部暴露集合容器的内部结构. 一. ...
随机推荐
- paper 149:Deep Learning 学习笔记(一)
1. 直接上手篇 台湾李宏毅教授写的,<1天搞懂深度学习> slideshare的链接: http://www.slideshare.net/tw_dsconf/ss-62245351? ...
- JAVA(JDK,JRE)更改目录安装及环境变量配置
重温一下 JAVA(JDK,JRE)更改目录安装及环境变量配置 https://jingyan.baidu.com/article/e2284b2b5b7ae5e2e7118d11.html 备注:随 ...
- 远程桌面按键失效变成快捷键(远程桌面连接时会自动按下win键)
三个电脑快捷键 (无意中学会三个快捷键了.....)win + L 锁屏win + D 切换到桌面win + F 搜索 在使用远程桌面连接Windows 2008操作系统,发现一个很烦的问题,经常发现 ...
- Shorten IPv6 Address
题目链接 题意:转换一个128位的二进制串,变成16进制,并且格式为x:x:x:x:x:x:x:x然后多个相邻的0变成::,且只有一个::,求变成的字典序最小且最短的字符串. 思路:大水题,但是就是一 ...
- [杂题]:C/c(二分答案)
题目传送门(内部题54) 输入格式 第一行一个整数表示$n$.第二行$n$个整数表示初始序列.(这行原题没有,是我加的)接下来$2n$行每行两个整数,分别表示$X_i,Y_i$.数据保证至少存在一种方 ...
- 解决Mac下使用root 权限依旧无法读写文件的问题
当时在学习selenium的时候,需要配合使用chromedriver 和phantomjs 进行浏览器的自动化测试.. chromedriver下载结束后.无法移动到/user/bin下面 会提示权 ...
- 因果卷积(causal)与扩展卷积(dilated)
因果卷积(causal)与扩展卷积(dilated)之An Empirical Evaluation of Generic Convolutional and Recurrent Networks f ...
- UI:UI 目录
ylbtech-UI:UI 目录 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://ylbtech ...
- PAT_A1074#Reversing Linked List
Source: PAT A1074 Reversing Linked List (25 分) Description: Given a constant K and a singly linked l ...
- event代表事件的状态,专门负责对事件的处理,它的属性和方法能帮助我们完成很多和用户交互的操作;
IE的event和其他的标准DOM的Event是不一样的,不同的浏览器事件的冒泡机制也是有区别 IE:window.event.cancelBubble = true;//停止冒泡window.eve ...