K8S部署hazelcast
生活随笔
收集整理的這篇文章主要介紹了
K8S部署hazelcast
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
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-operatordeploy && 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環(huán)境變量選項(xiàng)
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/
總結(jié)
以上是生活随笔為你收集整理的K8S部署hazelcast的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker配置数据默认存储路径:--g
- 下一篇: K8S创建role命令示例