K8S部署hazelcast
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相关推荐
- k8s部署Hazelcast分布式缓存中间件
这篇文档主要是描述Kubernetes在Hazelcast平台上部署原生云应用的方法.当我们提到原生云应用时,意味着我们的应用程序是运行在一个集群之上,同时使用这个集群的基础设施实现这个应用程序.值得 ...
- K8S部署工具:KubeOperator集群导入
K8S部署工具:KubeOperator集群导入 基本信息⚓︎ 输入要导入集群的名称.Api Server.Router.Token 示例 Api Server: https://172.16.10. ...
- K8S部署工具:KubeOperator集群部署
K8S部署工具:KubeOperator集群部署 集群信息⚓︎ 项目: 选择集群所属项目 供应商: 支持裸金属(手动模式)和部署计划(自动模式) 版本: 支持版本管理中最新的两个 Kubernetes ...
- K8S部署工具:KubeOperator集群规划-手动模式
K8S部署工具:KubeOperator集群规划-手动模式 KubeOperator 支持两种 Kubernetes 集群部署方式,一种是手动模式,另外一种是自动模式.手动模式下,用户需要自行准备主机 ...
- K8S部署工具:KubeOperator集群规划-自动模式
K8S部署工具:KubeOperator集群规划-自动模式 KubeOperator 支持两种 Kubernetes 集群部署方式,一种是自动模式,另外一种是手动模式,我们推荐使用自动模式.在自动模式 ...
- K8S部署工具:KubeOperator系统设置
K8S部署工具:KubeOperator系统设置 系统设置⚓︎ 仓库协议: 支持 http 和 https,默认 http 仓库 IP: 默认为部署 KubeOperator 的服务器 IP.将使用该 ...
- K8S部署工具:KubeOperator安装部署
K8S部署工具:KubeOperator安装部署 硬件要求⚓︎ 最小化配置 角色 CPU核数 内存 系统盘 数量 部署机 4 8G 100G 1 Master 4 8G 100G 1 Worker 4 ...
- K8S部署工具:KubeOperator主要概念
K8S部署工具:KubeOperator主要概念 部署模式⚓︎ 手动模式: 用户需要自己准备物理机或虚拟机,存储可选择 NFS 持久化存储,外部 ceph 存储等 自动模式: 用户只需要绑定云平台(比 ...
- k8s部署zkui 2.0
下载地址 https://github.com/DeemOpen/zkui maven构建 [root@k8s-n0 zkui]# pwd /home/k8s-yaml/zk-ui2/zkui [ro ...
最新文章
- 银行卡大小的充电宝,买就送耳机!
- java shape_Java 读取shape文件
- 六,ESP8266 TCP Client(基于Lua脚本语言)
- python软件开发-有哪些值得推荐的 Python 开发工具?
- MapReduce基础开发之十读写ORC File
- SQL基础---SQL ORDER BY 子句
- 24、JSON与OC互相转化
- SharePoint 2010 大中小架构的部署
- assignment symbolic automaton verilog设计
- c语言 Nimm game算法,尼姆博奕(Nimm Game)
- 力扣 两数相加 指针操作注意事项
- centos mysql
- 计算机数学英语基础,计算机数学基础教程 2012年版
- 《java高并发编程详解》第0集
- android_adb pm和adb am +启动/杀死app进程
- 软件测试计划和测试方案的区别
- 邯郸php,邯郸php程序员培训,邯郸php程序员培训费用,邯郸php程序员培训完工作好找吗...
- 2021年石景山区景贤计划人才认定条件及材料,补贴100万
- LWN:终于能够防护 straight-line 预测执行漏洞了!
- flowable 中文文档
热门文章
- 趣学python3(42)--将字符串格式日期转换为excel的日期格式
- 【数据分析】年轻人如何才能实现年薪百万呢?用数据分析来帮你探探路
- 【机器学习】scikit-learn 1.0 版本重要新特性一览
- 【深度学习】万字综述:用于深度神经网络加速的Shift操作
- 【小白学PyTorch】15.TF2实现一个简单的服装分类任务
- 真相残酷:如何衡量自己是否适合做科研?
- 【竞赛总结】新冠期间饿了么骑士行为预估
- 复现经典:《统计学习方法》第14章 聚类方法
- Pytorch基础知识整理(六)参数初始化
- 冬至日,诚邀你来杭州网易,一起吃着饺子畅聊「B2B增长」