K8S部署hbase单机版
时间: 2023-10-30 14:05:32 浏览: 224
要在Kubernetes上部署HBase单机版,可以使用StatefulSet。以下是一个简单的步骤:
1. 创建一个配置文件hbase-config.yaml:
```
apiVersion: v1
kind: ConfigMap
metadata:
name: hbase-config
data:
hbase-site.xml: |
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hbase-zookeeper-0.hbase-zookeeper.default.svc.cluster.local,hbase-zookeeper-1.hbase-zookeeper.default.svc.cluster.local,hbase-zookeeper-2.hbase-zookeeper.default.svc.cluster.local</value>
</property>
</configuration>
```
2. 创建一个Headless Service:
```
apiVersion: v1
kind: Service
metadata:
name: hbase-headless
spec:
clusterIP: None
selector:
app: hbase
ports:
- name: thrift
port: 9090
- name: rest
port: 8080
```
3. 创建一个StatefulSet:
```
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: hbase
spec:
serviceName: hbase-headless
replicas: 1
selector:
matchLabels:
app: hbase
template:
metadata:
labels:
app: hbase
spec:
containers:
- name: hbase
image: hbase:2.2.4
command:
- sh
- -c
- "echo 'deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse' >> /etc/apt/sources.list && apt-get update && apt-get install -y netcat && /opt/hbase/bin/start-hbase.sh && tail -f /opt/hbase/logs/*"
ports:
- containerPort: 9090
name: thrift
- containerPort: 8080
name: rest
volumeMounts:
- name: hbase-data
mountPath: /hbase
- name: hbase-config
mountPath: /opt/hbase/conf/hbase-site.xml
subPath: hbase-site.xml
volumes:
- name: hbase-data
persistentVolumeClaim:
claimName: hbase-data
- name: hbase-config
configMap:
name: hbase-config
```
4. 创建一个PersistentVolumeClaim:
```
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: hbase-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
```
上述配置文件中,假设已经有一个Zookeeper集群,名称为hbase-zookeeper,并且已经部署在Kubernetes中。在上述配置文件中,使用了HBase 2.2.4版本的镜像。在容器启动时,首先安装netcat,然后启动HBase,并保持日志输出。注意,hbase-site.xml文件被挂载到容器中。
以上是一个简单的部署HBase单机版的示例。根据实际情况,可能需要进行一些修改。
阅读全文