Flink on k8s 入门实战

Flink on k8s 入门实战

背景

最近一直在学习flink on k8s,踩了不少坑,折腾了好几天,终于是达到了自己想要的效果。

首先说一下,我要实现的效果是什么?Application模式下,ip和端口保持不变,根据不同的路径访问不同的任务。

环境部署

这一步也是我遇到问题最多的一步,最开始尝试用我的mac本用minicube来部署k8s集群,但是后来有docker对mac做了网络上的限制,导致无法通过容器ip直接访问,所以后来就放弃,具体原因可以查看 https://blog.csdn.net/b5wang/article/details/119082508

然后我就用windows系统,装了一个linux带图形化的虚拟机,经过一系列折腾后,终于是实现了。下面是具体的步骤

minicube安装

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

k8s安装

加上这个配置 --image-mirror-country=‘cn’ ,可以使用国内的镜像

minikube start --kubernetes-version=v1.25.3 --image-mirror-country='cn'

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
mv kubectl /usr/local/bin/

helm安装

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

k8s 中的 ingress 安装

这一步很重要
deploy.yaml

apiVersion: v1
kind: Namespace
metadata:
  labels:
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
  name: ingress-nginx
---
apiVersion: v1
automountServiceAccountToken: true
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.7.0
  name: ingress-nginx
  namespace: ingress-nginx
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: admission-webhook
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.7.0
  name: ingress-nginx-admission
  namespace: ingress-nginx
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.7.0
  name: ingress-nginx
  namespace: ingress-nginx
rules:
- apiGroups:
  - ""
  resources:
  - namespaces
  verbs:
  - get
- apiGroups:
  - ""
  resources:
  - configmaps
  - pods
  - secrets
  - endpoints
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses/status
  verbs:
  - update
- apiGroups:
  - networking.k8s.io
  resources:
  - ingressclasses
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - coordination.k8s.io
  resourceNames:
  - ingress-nginx-leader
  resources:
  - leases
  verbs:
  - get
  - update
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - create
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
- apiGroups:
  - discovery.k8s.io
  resources:
  - endpointslices
  verbs:
  - list
  - watch
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app.kubernetes.io/component: admission-webhook
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.7.0
  name: ingress-nginx-admission
  namespace: ingress-nginx
rules:
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.7.0
  name: ingress-nginx
rules:
- apiGroups

相关推荐

  1. Flink on k8s 入门实战

    2024-04-30 00:58:03       12 阅读
  2. k8s入门实践

    2024-04-30 00:58:03       33 阅读
  3. k8s入门实战(八)—— Secret概述

    2024-04-30 00:58:03       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-30 00:58:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-30 00:58:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-30 00:58:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-30 00:58:03       18 阅读

热门阅读

  1. transformer上手(12)—— Prompting 情感分析

    2024-04-30 00:58:03       13 阅读
  2. LeetCode 刷题 -- Day 7

    2024-04-30 00:58:03       12 阅读
  3. yum的安装与部署

    2024-04-30 00:58:03       10 阅读
  4. PaddleSeg (2) 模型训练

    2024-04-30 00:58:03       13 阅读
  5. MySQL的备份与恢复

    2024-04-30 00:58:03       9 阅读
  6. sqlserver创建login、user并授予相应数据库的权限

    2024-04-30 00:58:03       10 阅读
  7. 使用python写一个识别车牌原理

    2024-04-30 00:58:03       9 阅读
  8. ssh登录主机时会读取哪些PAM文件进行认证

    2024-04-30 00:58:03       10 阅读
  9. 【QA】Git常用命令

    2024-04-30 00:58:03       10 阅读