king 发布的文章
三角函數
誘導公式
口訣:「奇變偶不變,符號看象限」(90*k+a中的k)
Minikube 本地 Kubernetes 环境搭建与架构解析
一、 核心概念与定位
Minikube:Kubernetes 官方提供的单节点本地学习/测试沙盒。
架构逻辑:通过 Docker 驱动,在宿主机上启动一个名为 minikube 的容器(采用 Docker-in-Docker 架构),该容器内部完整集成了 K8s 控制面与工作节点。
组件分工:
minikube:环境部署与集群生命周期管理工具(创建、启动、停止)。
kubectl:集群交互命令行客户端,用于向 K8s API Server 发送 YAML 部署指令。
生产对比:生产环境通常采用 Kubeadm 自动化搭建高可用集群,或直接使用 公有云托管 K8s(如 ACK / EKS);Minikube 仅用于本地开发调试。
二、 实战详细过程(从零到部署)
Step 1: 下载二进制文件(Binary Files)
在 Linux (CentOS/Ubuntu) 环境下,直接下载所需的二进制工具(先获取稳定版本号再下载 kubectl,避免指令嵌套):
1. 下载 minikube 可执行文件
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
2. 获取 K8s 最新稳定版本号并下载 kubectl 客户端
K8S_VERSION=$(curl -s https://dl.k8s.io/release/stable.txt)
curl -LO "https://dl.k8s.io/release/${K8S_VERSION}/bin/linux/amd64/kubectl"
3. 赋予可执行权限并移入系统 PATH
chmod +x minikube kubectl
sudo mv minikube kubectl /usr/local/bin/Step 2: 启动 Minikube 集群
指定使用 Docker 作为容器运行时驱动来启动单节点 K8s:
minikube start --driver=dockerStep 3: 编写配置与部署应用
编写测试 YAML 配置文件,并使用 kubectl 进行提交:
应用部署配置 (例如 whoami / httpbin)
kubectl apply -f app.yaml
kubectl apply -f ingress.yaml
查看 Pod 运行状态
kubectl get pods -A
SSH 进入 minikube 节点内部
minikube ssh
在节点内部查看 K8s 拉起的底层应用容器
docker ps三、 总结全链路架构
【宿主机环境】 ──(执行 minikube start)──> 【Minikube Docker容器 (模拟K8s节点)】 ──(执行 kubectl apply)──> 【Pod (容器内运行的具体应用)】
链路流转四步法:
下载(Download):获取 minikube 与 kubectl 二进制文件。
初始化(Initialize):执行 minikube start,在宿主机生成一个名为 minikube 的 Docker 容器(充当 K8s 单节点)。
交互(Interact):使用 kubectl apply -f app.yaml 向 minikube 容器内的 API Server 提交配置。
运行(Run):K8s 在 minikube 节点内部拉取镜像并运行 Pod,通过 Service 或 Ingress 对外暴露服务。
四、 附录:示例配置文件
1.app.yaml
1. httpbin 部署(3 個 Pod 副本)
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpbin-deploy
spec:
replicas: 3
selector:
matchLabels:
app: httpbin
template:
metadata:
labels:
app: httpbin
spec:
containers:
- name: httpbin
image: kennethreitz/httpbin
ports:
- containerPort: 80
---
2. httpbin Service (內部 ClusterIP)
apiVersion: v1
kind: Service
metadata:
name: httpbin-svc
spec:
type: ClusterIP
selector:
app: httpbin
ports:
- port: 80
targetPort: 80
---
3. whoami 部署(3 個 Pod 副本)
apiVersion: apps/v1
kind: Deployment
metadata:
name: whoami-deploy
spec:
replicas: 3
selector:
matchLabels:
app: whoami
template:
metadata:
labels:
app: whoami
spec:
containers:
- name: whoami
image: traefik/whoami
ports:
- containerPort: 80
---
4. whoami Service (內部 ClusterIP)
apiVersion: v1
kind: Service
metadata:
name: whoami-svc
spec:
type: ClusterIP
selector:
app: whoami
ports:
- port: 80
targetPort: 802.ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /httpbin(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: httpbin-svc
port:
number: 80
- path: /whoami(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: whoami-svc
port:
number: 80 Apache App test20260806
已
1.hot-web 数据集成/ETL
界面難用的一匹,沒有scroll,顯示不全時只能整體縮放才能看到,但縮小了字就看不到了
2.airflow 任务调度/工作流
還蠻好用的 python寫代碼,可以加入一些讀寫mail,讀寫數據庫的操作等簡單的RPA作業
3.guakamole
JumpServer一樣的工具,好用
4.tika
ocr
5.
待
1.Superset 企业级数据可视化与 BI 商业智能平台
2.Kafka 分布式高吞吐量的消息队列与流处理平台
3.RocketMQ 金融级分布式消息中间件(最早由阿里开源)
4.Zeppelin 互動式數據分析與視覺化 Notebook(筆記本)平台
==================================================
3.同時用3380 & 13570:開通13570,再netsh interface portproxy add v4tov4 listenport=13570 listenaddress=0.0.0.0 connectport=3389 connectaddress=127.0.0.1
公司素餐 看起来不错
13元一份,还行 吃的饱饱的
