K8s 部署 Apache Kudu 集群

这篇具有很好参考价值的文章主要介绍了K8s 部署 Apache Kudu 集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、K8s 部署 Apache Kudu 集群

安装规划

组件 replicas
kudu-master 3
kudu-tserver 3

1. 创建命名空间

vi kudu-ns.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: apache-kudu
  labels:
    name: apache-kudu
kubectl apply -f kudu-ns.yaml

查看命名空间:

kubectl get ns

K8s 部署 Apache Kudu 集群

2. 创建存储卷

vi local-kudu-storage.yaml
kind: StorageClass 
apiVersion: storage.k8s.io/v1
metadata:
  name: local-kudu-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer 	# 绑定模式为等待消费者,即当Pod分配到节点后,进行与PV的绑定
kubectl apply -f local-kudu-storage.yaml

查看存储卷

kubectl get sc

K8s 部署 Apache Kudu 集群

3. node 填加标签

kubectl label nodes node1 kudu-master-node=true
kubectl label nodes node2 kudu-master-node=true
kubectl label nodes node3 kudu-master-node=true
kubectl label nodes node1 kudu-tserver-node=true
kubectl label nodes node2 kudu-tserver-node=true
kubectl label nodes node3 kudu-tserver-node=true

查看 node 标签

kubectl get node --show-labels=true

K8s 部署 Apache Kudu 集群

4. 创建 kudu-master 和 tserver 的 PV 和 PVC

预先创建好存储目录,在需要分配的 node 上,并授予权限:

mkdir -p {/opt/kudu/master-data,/opt/kudu/tserver-data} && chmod 777  {/opt/kudu/master-data,/opt/kudu/tserver-data}
vi local-kudu-pv-pvc.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-kudu-master-pv
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 5Gi
  local:
    path: /opt/kudu/master-data # 需要在指定的节点创建相应的目录
  nodeAffinity: # 指定节点,对节点配置label
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kudu-master-node
          operator: In
          values:
          - "true"
  persistentVolumeReclaimPolicy: Retain  # 回收策略为保留,不会删除数据,即当pod重新调度的时候,数据不会发生变化.
  storageClassName: local-kudu-storage

---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: local-kudu-master-pvc
  namespace: apache-kudu
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-kudu-storage
  resources:
    requests:
      storage: 5Gi

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-kudu-tserver-pv
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 5Gi
  local:
    path: /opt/kudu/tserver-data # 需要在指定的节点创建相应的目录
  nodeAffinity: # 指定节点,对节点配置label
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kudu-tserver-node
          operator: In
          values:
          - "true"
  persistentVolumeReclaimPolicy: Retain # 回收策略为保留,不会删除数据,即当pod重新调度的时候,数据不会发生变化.
  storageClassName: local-kudu-storage
  
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: local-kudu-tserver-pvc
  namespace: apache-kudu
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-kudu-storage
  resources:
    requests:
      storage: 5Gi
kubectl apply -f local-kudu-pv-pvc.yaml

查看 PV:

kubectl get pv

K8s 部署 Apache Kudu 集群

查看 PVC :

kubectl get pvc -n apache-kudu

K8s 部署 Apache Kudu 集群

5. 创建 Service 服务

vi kudu-svc.yaml
# headless service for kudu masters
apiVersion: v1
kind: Service
metadata:
  name: kudu-masters
  namespace: apache-kudu
  labels:
    app: kudu-master
spec:
  clusterIP: None
  ports:
    - name: ui
      port: 8051
    - name: rpc-port
      port: 7051
  selector:
    app: kudu-master

---
# NodePort service for masters
apiVersion: v1
kind: Service
metadata:
  name: kudu-master-ui
  namespace: apache-kudu
  labels:
    app: kudu-master
spec:
  clusterIP:
  ports:
    - name: ui
      port: 8051
      nodePort: 30051
      targetPort: 8051
  selector:
    app: kudu-master
  type: NodePort
  target-port:
  externalTrafficPolicy: Cluster # Local 只有所在node可以访问,Cluster 公平转发

---
# headless service for tservers
apiVersion: v1
kind: Service
metadata:
  name: kudu-tservers
  namespace: apache-kudu
  labels:
    app: kudu-tserver
spec:
  clusterIP: None
  ports:
    - name: ui
      port: 8050
    - name: rpc-port
      port: 7050
  selector:
    app: kudu-tserver
kubectl apply -f kudu-svc.yaml

查看创建的 service:

kubectl get svc -n apache-kudu

K8s 部署 Apache Kudu 集群

6. 创建 kudu-master 和 tserver 服务容器

vi kudu-master-tserver-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: kudu-master
  namespace: apache-kudu
  labels:
    app: kudu-master
spec:
  serviceName: kudu-masters
  podManagementPolicy: "Parallel"
  replicas: 3
  selector:
    matchLabels:
      app: kudu-master
  template:
    metadata:
      labels:
        app: kudu-master
    spec:
      containers:
        - name: kudu-master
          image: apache/kudu:1.15.0
          imagePullPolicy: IfNotPresent
          env:
            - name: GET_HOSTS_FROM
              value: dns
            - name: POD_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: KUDU_MASTERS
              value: "kudu-master-0.kudu-masters.apache-kudu.svc.cluster.local,kudu-master-1.kudu-masters.apache-kudu.svc.cluster.local,kudu-master-2.kudu-masters.apache-kudu.svc.cluster.local"
          args: ["master"]
          ports:
            - containerPort: 8051
              name: master-ui
            - containerPort: 7051
              name: master-rpc
          volumeMounts:
            - name: kudu-master-data
              mountPath: /mnt/data0
            - name: kudu-master-data
              mountPath: /var/lib/kudu
      volumes:
      - name: kudu-master-data
        persistentVolumeClaim:
          claimName: local-kudu-master-pvc
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: kudu-tserver
  namespace: apache-kudu
  labels:
    app: kudu-tserver
spec:
  serviceName: kudu-tservers
  podManagementPolicy: "Parallel"
  replicas: 3
  selector:
    matchLabels:
      app: kudu-tserver
  template:
    metadata:
      labels:
        app: kudu-tserver
    spec:
      containers:
        - name: kudu-tserver
          image: apache/kudu:1.15.0
          imagePullPolicy: IfNotPresent
          env:
            - name: GET_HOSTS_FROM
              value: dns
            - name: POD_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: KUDU_MASTERS
              value: "kudu-master-0.kudu-masters.apache-kudu.svc.cluster.local,kudu-master-1.kudu-masters.apache-kudu.svc.cluster.local,kudu-master-2.kudu-masters.apache-kudu.svc.cluster.local"
          args: ["tserver"]
          ports:
            - containerPort: 8050
              name: tserver-ui
            - containerPort: 7050
              name: tserver-rpc
          volumeMounts:
            - name: kudu-tserver-data
              mountPath: /mnt/data0
            - name: kudu-tserver-data
              mountPath: /var/lib/kudu
      volumes:
      - name: kudu-tserver-data
        persistentVolumeClaim:
          claimName: local-kudu-tserver-pvc
kubectl apply -f kudu-master-tserver-statefulset.yaml

查看 statefulset :

kubectl get statefulset -n apache-kudu

K8s 部署 Apache Kudu 集群

查看 pod:

kubectl get pods -n apache-kudu

K8s 部署 Apache Kudu 集群

7. 查看 web页面

http://nodel2:30051

K8s 部署 Apache Kudu 集群
查看 Master 情况:

K8s 部署 Apache Kudu 集群

查看 tserver 情况:

K8s 部署 Apache Kudu 集群文章来源地址https://www.toymoban.com/news/detail-491724.html

到了这里,关于K8s 部署 Apache Kudu 集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8s集群部署(二进制安装部署详细手册)

       一、简介 K8s部署主要有两种方式: 1、Kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 2、二进制   从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。  本文通过二进制安装部署的方式在centos7上搭建kubernetes集群

    2024年02月15日
    浏览(50)
  • K8S集群安装与部署(Linux系统)

    一、环境说明:CentOS7、三台主机(Master:10.0.0.132、Node1:10.0.0.133、Node2:10.0.0.134) 二、准备环境: 映射 关闭防火墙 三、etcd集群配置 安装etcd(Master) 修改etcd配置文件/etc/etcd/etcd.conf(Master) 安装K8S节点组件、etcd、flannel以及docker(Node1和Node2) 修改etcd配置文件/etc/etcd/et

    2024年02月11日
    浏览(45)
  • 【k8s】基于Prometheus监控Kubernetes集群安装部署

    目录 基于Prometheus监控Kubernetes集群安装部署 一、环境准备 二、部署kubernetes集群 三、部署Prometheus监控平台 四、部署Grafana服务 五、grafana  web操作 IP地址 主机名 组件 192.168.100.131 k8s-master kubeadm、kubelet、kubectl、docker-ce 192.168.100.132 k8s-node01 kubeadm、kubelet、kubectl、docker-ce 192.168

    2024年02月12日
    浏览(53)
  • 安装部署rancher2.7.0,然后导入K8S集群,管理集群

    centos系统请参考博客 ubuntu系统请参考博客 默认用户是admin 浏览器打开:https://IP:443 回车后就出现了如下图 利用刚才查到的密码登录 登录后直接修改密码,点击继续。 上图就是进入后的默认页面 不同版本调整中文的页面不一样,具体请根据自己的版本可以百度或者去官网查

    2024年02月11日
    浏览(42)
  • K8s(kubernetes)集群搭建及dashboard安装、基础应用部署

    本质是一组服务器集群,在集群每个节点上运行特定的程序,来对节点中的容器进行管理。实现资源管理的自动化。 自我修复 弹性伸缩 服务发现 负载均衡 版本回退 存储编排 控制节点(master)-控制平面 APIserver :资源操作的唯一入口 scheduler :集群资源调度,将Pod调度到node节

    2024年02月08日
    浏览(46)
  • Centos7 安装部署 Kubernetes(k8s) 高可用集群

    宿主机系统 集群角色 服务器IP 主机名称 容器 centos7.6 master 192.168.2.150 ks-m1 docker centos7.6 master 192.168.2.151 ks-n1 docker centos7.6 master 192.168.2.152 ks-n2 docker 1.1 服务器初始化及网络配置 VMware安装Centos7并初始化网络使外部可以访问** 注意事项:请一定要看完上面这篇文章再执行下面的操

    2024年02月03日
    浏览(56)
  • Amazon Linux2使用kubeadm部署安装K8S集群

    在AWS上启动3台Amazon Linux2的服务器,服务器配置为2vcpu 和2GB内存 1. 修改主机名(可选步骤) 2.导入k8s的yum仓库密钥 3. 配置kubernetes源 4. 部署安装kubeadm、kubectl、docker,并且启动docker 5. 在master节点上执行初始化 具体初始化过程如下 [init] Using Kubernetes version: v1.27.1 [preflight] Runni

    2024年02月06日
    浏览(47)
  • 云原生|kubernetes|kubernetes集群部署神器kubekey安装部署高可用k8s集群(半离线形式)

    前面利用kubekey部署了一个简单的非高可用,etcd单实例的kubernetes集群,经过研究,发现部署过程可以简化,省去了一部分下载过程(主要是下载kubernetes组件的过程)只是kubernetes版本会固定在1.22.16版本,etcd集群可以部署成生产用的外部集群,并且apiserver等等组件也是高可用,

    2024年02月15日
    浏览(48)
  • 安装部署最新版或者rancher2.7.0,然后导入K8S集群,管理集群

    centos系统请参考博客 ubuntu系统请参考博客 默认用户是admin 浏览器打开:https://IP:443 回车后就出现了如下图 利用刚才查到的密码登录 登录后直接修改密码,点击继续。 上图就是进入后的默认页面 不同版本调整中文的页面不一样,具体请根据自己的版本可以百度或者去官网查

    2024年02月08日
    浏览(46)
  • Rancher部署k8s集群测试安装nginx(节点重新初始化方法,亲测)

    一、安装前准备工作 计算机 机器名 IP地址 部署内容 rancher 172.16.5.221 rancher k8smaster 172.16.5.222 Control Plane, Etcd k8sworker01 172.16.5.223 worker k8sworker02 172.16.5.224 worker k8sworker03 172.16.5.225 worker 需在每个节点都进行操作,可以使用xshell工具分屏进行批量操作。 升级linux内核 时间同步 Hos

    2024年01月20日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包