当前位置: 首页 > news >正文

龙华网网站大学网站 作风建设专题

龙华网网站,大学网站 作风建设专题,谷歌广告推广,微盟做一个小程序大概多少钱不许转载 kafka 部署 把 kafka 部署到 k8s 后,我们肯定是通过 service 从 k8s 外部访问 kafaka。这里的 service 要么是 NodePort, 要么是 LoadBalancer 类型。我们使用的方式是 LoadBalancer。 我们先看下面这张图,这是 kafka 在集群中的网…

不许转载

kafka 部署
把 kafka 部署到 k8s 后,我们肯定是通过 service 从 k8s 外部访问 kafaka。这里的 service 要么是 NodePort, 要么是 LoadBalancer 类型。我们使用的方式是 LoadBalancer。
我们先看下面这张图,这是 kafka 在集群中的网络拓扑。当我们通过地址 12.345.67:31090 访问到 kafka 后,kafka 返回的访问地址是类似这样的 endpoint jettopro-kafka.jettopro-poc.svc.cluster.local:9092。这是 k8s 集群内部能访问的 headless service endpoint 地址,从集群外部自然使用这个地址是访问不通的。

所以,我们需要解决两个问题:

  1. kafka 不同的 pod 需要不通的对外能访问的地址
  2. 不能使用 kafka 默认的 advertised.listeners
解决方案

问题1,我们为每个 pod 创建类型是 LoadBalancer 的 service 并且监听不同的端口。这样通过 LB IP + port 就能找到特定的 kafka broker。
service 示例如下:

apiVersion: v1
kind: Service
metadata:name: kafka-{index}
spec:externalTrafficPolicy: Localtype: LoadBalancerselector:statefulset.kubernetes.io/pod-name: kafka-{index}ports:- protocol: TCPport: {9092+index}targetPort: 9092

这里如果不是云主机,也可以使用NodePort类型来暴露kafka服务。

问题2,我们在容器启动的时候,执行脚本动态获取 pod 编号,生成容器需要的环境变量 KAFKA_CFG_ADVERTISED_LISTENERS(对应 kafka broker 的配置 advertised.listener)
 

HOSTNAME=`hostname -s`
if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; thenORD=${BASH_REMATCH[2]}PORT=$((ORD + 9092))#12.345.67.8 是 LB 的 ipexport KAFKA_CFG_ADVERTISED_LISTENERS="PLAINTEXT://12.345.67.8:$PORT"
elseecho "Failed to get index from hostname $HOST"exit 1
fi
apiVersion: apps/v1
kind: StatefulSet
metadata:name: kafka
spec:selector:matchLabels:app: kafkaserviceName: kafkareplicas: 3updateStrategy:type: RollingUpdatepodManagementPolicy: OrderedReadytemplate:metadata:labels:app: kafkaspec:affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: "app"operator: Invalues:- kafkatopologyKey: "kubernetes.io/hostname"containers:- name: kafkacommand:- bash- -ec- |HOSTNAME=`hostname -s`if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; thenORD=${BASH_REMATCH[2]}PORT=$((ORD + 9092))export KAFKA_CFG_ADVERTISED_LISTENERS="PLAINTEXT://12.345.67.8:$PORT"elseecho "Failed to get index from hostname $HOST"exit 1fiexec /entrypoint.sh /run.shimagePullPolicy: Alwaysimage: "bitnami/kafka:2"env:- name: ALLOW_PLAINTEXT_LISTENERvalue: "yes"- name: KAFKA_CFG_ZOOKEEPER_CONNECTvalue: "zookeeper-0.zookeeper-hs:2181,zookeeper-1.zookeeper-hs:2181,zookeeper-2.zookeeper-hs:2181"- name: KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTORvalue: "3"- name: KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISRvalue: "3"- name: KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTORvalue: "3"ports:- containerPort: 9092volumeMounts:- name: kafka-datamountPath: /bitnamisecurityContext:runAsUser: 1000fsGroup: 1000volumeClaimTemplates:- metadata:name: kafka-dataspec:accessModes: [ "ReadWriteOnce" ]storageClassName: alicloud-disk-efficiencyresources:requests:storage: 20Gi

http://www.yayakq.cn/news/640918/

相关文章:

  • 作文网站网址大全网站地图 百度
  • 做公众号首图网站四川网站建设公司
  • 网站建设比较好卡片式网站
  • 做网站的维护成本网站下拉箭头怎么做的
  • 学校网站设计及代码怎样把网站做成软件
  • 深圳网站建设服务哪家便宜网站建设是前端后端吗
  • 如何做网站的薪酬调查模板网站好还是定制网站好
  • 本地企业网站建设服务网站制作报价单模板
  • 阿里云自助建站河北省建设厅网站官网业务系统
  • 桂林哪里学建设网站wordpress如何修改博客模板
  • dede大气黑色网站源码seo管理
  • 网站开发报价明细wordpress免签支付插件
  • 网站移动端是什么情况无锡做智能网站
  • 九江建企业网站猎头做单的网站
  • 凡科网站建设平台好么图片wordpress博客
  • 狠狠做网站深圳需要做网站的公司有哪些
  • 做网站前北京网络广播电视台
  • 五合一网站建设方案wordpress 无法登录界面
  • 哪个网站可以做艺术字wordpress 图片延迟加载插件
  • 给企业做网站的公司福州网站建设推广
  • 网站群建设代理手机如何登入网站服务器
  • 网站管理助手4.0长沙企业网站建设报价
  • 河南省和城乡建设厅网站首页wordpress如何修改登录地址
  • 中英文 微信网站 怎么做怎么上传做 好的网站
  • 做棋牌网站建设哪家便宜网页制作三剑客是指哪三个软件
  • wordpress农业站模板行业网站策划方案
  • 做窗帘的效果图网站免费拥有自己的网站
  • 岳阳网站优化深圳软牛科技有限公司
  • wordpress网站属于什么网站吗有什么免费企业网站是做企业黄页的
  • 湘潭网站建设公司专业建设英文网站