rbac

Hazelcast uses Kubernetes API for auto-discovery. That is why you need to grant certain roles to your service account. You can do it by creating the following “rbac.yaml” file.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: default-cluster
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: view
subjects:
- kind: ServiceAccountname: defaultnamespace: dmcca-spark-operator

deploy && svc

---
apiVersion: apps/v1
kind: Deployment
metadata:annotations:deployment.kubernetes.io/revision: '3'k8s.kuboard.cn/ingress: 'false'k8s.kuboard.cn/service: ClusterIPk8s.kuboard.cn/workload: hazelcastcreationTimestamp: '2021-11-10T02:49:46Z'generation: 5labels:k8s.kuboard.cn/layer: ''k8s.kuboard.cn/name: hazelcastmanagedFields:- apiVersion: apps/v1fieldsType: FieldsV1fieldsV1:'f:metadata':'f:annotations':.: {}'f:k8s.kuboard.cn/ingress': {}'f:k8s.kuboard.cn/service': {}'f:k8s.kuboard.cn/workload': {}'f:labels':.: {}'f:k8s.kuboard.cn/layer': {}'f:k8s.kuboard.cn/name': {}'f:spec':'f:progressDeadlineSeconds': {}'f:replicas': {}'f:revisionHistoryLimit': {}'f:selector': {}'f:strategy':'f:rollingUpdate':.: {}'f:maxSurge': {}'f:maxUnavailable': {}'f:type': {}'f:template':'f:metadata':'f:labels':.: {}'f:k8s.kuboard.cn/layer': {}'f:k8s.kuboard.cn/name': {}'f:spec':'f:affinity':.: {}'f:podAntiAffinity':.: {}'f:requiredDuringSchedulingIgnoredDuringExecution': {}'f:containers':'k:{"name":"hazelcast"}':.: {}'f:env':.: {}'k:{"name":"DNS_DOMAIN"}':.: {}'f:name': {}'f:value': {}'k:{"name":"POD_NAMESPACE"}':.: {}'f:name': {}'f:value': {}'f:image': {}'f:imagePullPolicy': {}'f:lifecycle': {}'f:name': {}'f:ports':.: {}'k:{"containerPort":5701,"protocol":"TCP"}':.: {}'f:containerPort': {}'f:name': {}'f:protocol': {}'f:resources': {}'f:terminationMessagePath': {}'f:terminationMessagePolicy': {}'f:dnsConfig': {}'f:dnsPolicy': {}'f:restartPolicy': {}'f:schedulerName': {}'f:securityContext':.: {}'f:seLinuxOptions': {}'f:terminationGracePeriodSeconds': {}manager: Mozillaoperation: Updatetime: '2021-11-10T03:37:49Z'- apiVersion: apps/v1fieldsType: FieldsV1fieldsV1:'f:metadata':'f:annotations':'f:deployment.kubernetes.io/revision': {}'f:status':'f:availableReplicas': {}'f:conditions':.: {}'k:{"type":"Available"}':.: {}'f:lastTransitionTime': {}'f:lastUpdateTime': {}'f:message': {}'f:reason': {}'f:status': {}'f:type': {}'k:{"type":"Progressing"}':.: {}'f:lastTransitionTime': {}'f:lastUpdateTime': {}'f:message': {}'f:reason': {}'f:status': {}'f:type': {}'f:observedGeneration': {}'f:readyReplicas': {}'f:replicas': {}'f:unavailableReplicas': {}'f:updatedReplicas': {}manager: kube-controller-manageroperation: Updatetime: '2021-11-10T03:37:49Z'name: hazelcastnamespace: dmcca-spark-operatorresourceVersion: '109451958'uid: d0523d40-6919-48b2-b8fe-5bc60ee6254c
spec:progressDeadlineSeconds: 600replicas: 3revisionHistoryLimit: 10selector:matchLabels:k8s.kuboard.cn/layer: ''k8s.kuboard.cn/name: hazelcaststrategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:creationTimestamp: nulllabels:k8s.kuboard.cn/layer: ''k8s.kuboard.cn/name: hazelcastspec:affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector: {}namespaces:- dmcca-spark-operatortopologyKey: kubernetes.io/hostnamecontainers:- env:- name: DNS_DOMAINvalue: cluster.local- name: POD_NAMESPACEvalue: dmcca-spark-operatorimage: '192.168.xxxx/lego/quay.io/pires/hazelcast-kubernetes:3.12.3'imagePullPolicy: IfNotPresentlifecycle: {}name: hazelcastports:- containerPort: 5701name: hazelcastprotocol: TCPresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsConfig: {}dnsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext:seLinuxOptions: {}terminationGracePeriodSeconds: 30---
apiVersion: v1
kind: Service
metadata:annotations:k8s.kuboard.cn/workload: hazelcastcreationTimestamp: '2021-11-10T02:49:46Z'labels:k8s.kuboard.cn/layer: ''k8s.kuboard.cn/name: hazelcastmanagedFields:- apiVersion: v1fieldsType: FieldsV1fieldsV1:'f:metadata':'f:annotations':.: {}'f:k8s.kuboard.cn/workload': {}'f:labels':.: {}'f:k8s.kuboard.cn/layer': {}'f:k8s.kuboard.cn/name': {}'f:spec':'f:ports':.: {}'k:{"port":5701,"protocol":"TCP"}':.: {}'f:name': {}'f:port': {}'f:protocol': {}'f:targetPort': {}'f:selector':.: {}'f:k8s.kuboard.cn/layer': {}'f:k8s.kuboard.cn/name': {}'f:sessionAffinity': {}'f:type': {}manager: Mozillaoperation: Updatetime: '2021-11-10T02:49:46Z'name: hazelcastnamespace: dmcca-spark-operatorresourceVersion: '109398374'uid: f2c7ad8b-fad8-48c1-93bc-c9e35358acc3
spec:clusterIP: 10.97.63.178clusterIPs:- 10.97.63.178ipFamilies:- IPv4ipFamilyPolicy: SingleStackports:- name: hazelcastport: 5701protocol: TCPtargetPort: 5701selector:k8s.kuboard.cn/layer: ''k8s.kuboard.cn/name: hazelcastsessionAffinity: Nonetype: ClusterIP

环境变量选项

To configure Hazelcast inside of the Kubernetes cluster the following environment options can be used:HAZELCAST_SERVICE - name of the Hazelcast service, declared in the Kubernetes service configuration. Default: hazelcast.
DNS_DOMAIN - domain name used inside of the cluster. Default: cluster.local.
POD_NAMESPACE - namespace in which hazelcast should be running. Default: default. Use the Downward API to set it automatically.
HC_GROUP_NAME - Hazelcast group name. Default: someGroup.
HC_GROUP_PASSWORD - Hazelcast group password. Default: someSecret.
HC_PORT - Port on which Hazelcast should be running.
HC_REST_ENABLED - Whether to enable Hazelcast REST API. Default: false.

参考链接:

  • 源码地址:
    https://github.com/pires/hazelcast-kubernetes-bootstrapper/tree/hazelcast-kubernetes-bootstrapper-3.12.3
  • deploy svc yaml地址:
    https://github.com/pires/hazelcast-kubernetes
  • rbac
    https://hazelcast.com/blog/how-to-use-embedded-hazelcast-on-kubernetes/

K8S部署hazelcast相关推荐

  1. k8s部署Hazelcast分布式缓存中间件

    这篇文档主要是描述Kubernetes在Hazelcast平台上部署原生云应用的方法.当我们提到原生云应用时,意味着我们的应用程序是运行在一个集群之上,同时使用这个集群的基础设施实现这个应用程序.值得 ...

  2. K8S部署工具:KubeOperator集群导入

    K8S部署工具:KubeOperator集群导入 基本信息⚓︎ 输入要导入集群的名称.Api Server.Router.Token 示例 Api Server: https://172.16.10. ...

  3. K8S部署工具:KubeOperator集群部署

    K8S部署工具:KubeOperator集群部署 集群信息⚓︎ 项目: 选择集群所属项目 供应商: 支持裸金属(手动模式)和部署计划(自动模式) 版本: 支持版本管理中最新的两个 Kubernetes ...

  4. K8S部署工具:KubeOperator集群规划-手动模式

    K8S部署工具:KubeOperator集群规划-手动模式 KubeOperator 支持两种 Kubernetes 集群部署方式,一种是手动模式,另外一种是自动模式.手动模式下,用户需要自行准备主机 ...

  5. K8S部署工具:KubeOperator集群规划-自动模式

    K8S部署工具:KubeOperator集群规划-自动模式 KubeOperator 支持两种 Kubernetes 集群部署方式,一种是自动模式,另外一种是手动模式,我们推荐使用自动模式.在自动模式 ...

  6. K8S部署工具:KubeOperator系统设置

    K8S部署工具:KubeOperator系统设置 系统设置⚓︎ 仓库协议: 支持 http 和 https,默认 http 仓库 IP: 默认为部署 KubeOperator 的服务器 IP.将使用该 ...

  7. K8S部署工具:KubeOperator安装部署

    K8S部署工具:KubeOperator安装部署 硬件要求⚓︎ 最小化配置 角色 CPU核数 内存 系统盘 数量 部署机 4 8G 100G 1 Master 4 8G 100G 1 Worker 4 ...

  8. K8S部署工具:KubeOperator主要概念

    K8S部署工具:KubeOperator主要概念 部署模式⚓︎ 手动模式: 用户需要自己准备物理机或虚拟机,存储可选择 NFS 持久化存储,外部 ceph 存储等 自动模式: 用户只需要绑定云平台(比 ...

  9. k8s部署zkui 2.0

    下载地址 https://github.com/DeemOpen/zkui maven构建 [root@k8s-n0 zkui]# pwd /home/k8s-yaml/zk-ui2/zkui [ro ...

最新文章

  1. 银行卡大小的充电宝,买就送耳机!
  2. java shape_Java 读取shape文件
  3. 六,ESP8266 TCP Client(基于Lua脚本语言)
  4. python软件开发-有哪些值得推荐的 Python 开发工具?
  5. MapReduce基础开发之十读写ORC File
  6. SQL基础---SQL ORDER BY 子句
  7. 24、JSON与OC互相转化
  8. SharePoint 2010 大中小架构的部署
  9. assignment symbolic automaton verilog设计
  10. c语言 Nimm game算法,尼姆博奕(Nimm Game)
  11. 力扣 两数相加 指针操作注意事项
  12. centos mysql
  13. 计算机数学英语基础,计算机数学基础教程 2012年版
  14. 《java高并发编程详解》第0集
  15. android_adb pm和adb am +启动/杀死app进程
  16. 软件测试计划和测试方案的区别
  17. 邯郸php,邯郸php程序员培训,邯郸php程序员培训费用,邯郸php程序员培训完工作好找吗...
  18. 2021年石景山区景贤计划人才认定条件及材料,补贴100万
  19. LWN:终于能够防护 straight-line 预测执行漏洞了!
  20. flowable 中文文档

热门文章

  1. 趣学python3(42)--将字符串格式日期转换为excel的日期格式
  2. 【数据分析】年轻人如何才能实现年薪百万呢?用数据分析来帮你探探路
  3. 【机器学习】scikit-learn 1.0 版本重要新特性一览
  4. 【深度学习】万字综述:用于深度神经网络加速的Shift操作
  5. 【小白学PyTorch】15.TF2实现一个简单的服装分类任务
  6. 真相残酷:如何衡量自己是否适合做科研?
  7. 【竞赛总结】新冠期间饿了么骑士行为预估
  8. 复现经典:《统计学习方法》第14章 聚类方法
  9. Pytorch基础知识整理(六)参数初始化
  10. 冬至日,诚邀你来杭州网易,一起吃着饺子畅聊「B2B增长」