Kubernetes Session亲和性设置
发表于|更新于|k8s
|浏览量:
当我们在部署了多个pod,以及一个Service后,就可以在集群内部通过ServiceIP访问pod提供的服务了;

当不设置session保持时,service向后台pod转发规则是轮询:



以上我通过点击页面请求,可以就看出service将我的请求分发到了后面的三个pod;
k8s会根据访问的ip来把请求转发给他以前访问过的pod,这样session就保持住了。
查看创建service时的yaml文件内容,如果没有设置的话 该项是为None的
文章作者: NoardGuo-Ops
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OpsThoughts!
相关推荐
2018-12-09
K8s Yaml编写小技巧
学习使用k8s的童鞋都知道我们在部署pod的时候有时候需要手动去编写一些yaml文件;比如我需要编写deployment,那除了在其他地方粘贴拷贝外有没有其他方法呢?答案是有的 1.用run命令生成,然后作为模板进行编辑。12345678910kubectl run --image=nginx my-deploy -o yaml --dry-run > my-deploy.yaml ``` ### 2.用get命令导出,然后作为模板进行编辑。``` # 注意: --export 是为了去除当前正在运行的这个deployment生成的一些状态,我们用不到就过滤掉kubectl get deployment/nginx -o=yaml --export > new.yaml``` ### 3.Pod亲和性下面字段的拼写忘记了 kubectl explain pod.spec.affinity.podAffinity 示例: --- 我想生成一个有三个副本的redis pod的yaml,然后我想把这三个pod 通过node亲和性调度到同一个node...
2018-12-07
K8s集群中pause容器是干嘛的~
当我们在检查k8s集群状态的时候会发现有很多 pause 容器运行于服务器上面,然后每次启动一个容器,都会伴随一个pause容器的启动。那它究竟是干啥子的? Pause容器,又叫Infra容器,下面通过实验来理解它。 我们知道在搭建k8s集群的时候,kubelet的配置中有这样一个参数: [root@linux-node1 cfg]# more /usr/lib/systemd/system/kubelet.service ······ ······ --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1 \ ······ ······ 我这里是直接将这些配置参数通过启动脚本来补充进去的。Pause容器,是可以自己来定义,官方使用的gcr.io/google_containers/pause-amd64:3.0容器的代码见Github,使用C语言编写。 Pause容器的作用我们检查nod节点的时候会发现每个node上都运行了很多的pause...
2018-12-04
理解Kubernetes的亲和性调度
NodeName、nodeSelector、nodeAffinity、podAffinity、Taints以及Tolerations用法 1. NodeNamePod.spec.nodeName用于强制约束将Pod调度到指定的Node节点上,这里说是“调度”,但其实指定了nodeName的Pod会直接跳过Scheduler的调度逻辑,直接写入PodList列表,该匹配规则是强制匹配。例子:我的预期是将该pod运行于节点名称为 192.168.56.11 这个节点: 1.1 例如(test-nodename.yaml)apiVersion: v1 kind: Pod metadata: labels: app: with-nodename-busybox-pod name: with-nodename spec: nodeName: 192.168.56.11 #通过这里指定 containers: - command: - sleep - "3600" image: busybox imagePullPolicy: If...
2018-07-14
如何将pod中的container时区更改为同一时区的城市或UTC时区偏移
问题:在创建pod container后发现里面的时区是UTC,对于国内习惯还是CST时区比较易读;那如何解决这种问题嘛?暂时想到的两种办法: [root@linux-node1 ~]# kubectl exec flask-app-nginx-66b56f556c-zb84s date -n flask-app-extions-stage Mon Jul 14 07:32:52 UTC 2018 [root@linux-node1 ~]# date Mon Jul 14 15:32:52 CST 2018 直接修改镜像的时间设置,好处是应用部署时无需特殊设置,但是需要手动从新构建Docker镜像 部署应用时,单独读取主机的”/etc/localtime”,无需修改镜像,但是每个应用都要单独设置。 解决:为了快速,简单的解决此问题,先使用第二种方法;yaml文件中映射主机的”/etc/localtime”文件, 添加yaml配置: ...... ...... spec: containers: - name: nginx im...