惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
D
DataBreaches.Net
Microsoft Security Blog
Microsoft Security Blog
U
Unit 42
V
Visual Studio Blog
GbyAI
GbyAI
云风的 BLOG
云风的 BLOG
博客园 - Franky
C
CXSECURITY Database RSS Feed - CXSecurity.com
大猫的无限游戏
大猫的无限游戏
P
Privacy & Cybersecurity Law Blog
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
L
LangChain Blog
I
Intezer
V2EX - 技术
V2EX - 技术
Google DeepMind News
Google DeepMind News
T
Threat Research - Cisco Blogs
Apple Machine Learning Research
Apple Machine Learning Research
V
V2EX
腾讯CDC
博客园 - 【当耐特】
Know Your Adversary
Know Your Adversary
TaoSecurity Blog
TaoSecurity Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Fortinet All Blogs
Project Zero
Project Zero
Blog — PlanetScale
Blog — PlanetScale
S
Security @ Cisco Blogs
量子位
M
MIT News - Artificial intelligence
美团技术团队
C
Cisco Blogs
S
Schneier on Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
G
Google Developers Blog
N
News and Events Feed by Topic
MongoDB | Blog
MongoDB | Blog
The Hacker News
The Hacker News
H
Help Net Security
S
Secure Thoughts
Scott Helme
Scott Helme
SecWiki News
SecWiki News
T
Troy Hunt's Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 叶小钗
O
OpenAI News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 司徒正美
T
Tenable Blog

k8s入门系列 on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 metallb + ingress-nginx + argocd 本地部署 Kubernetes — k8s 手动安装 1.17.9 Argo cd 安装和部署 Kubernetes — kubecost 分析 Kubernetes 成本 Ansible部署ceph集群 Kubernetes — 更新证书 Kubernetes — Rook云存储介绍和部署 Kubernetes — 基于K8S搭建Ceph分布式存储 Kubernetes — 探针和生命周期 Kubernetes — 开放标准(OCI、CRI、CNI、CSI、SMI、CPI)概述 kubernetes 部署插件 (Flannel、Web UI、CoreDNS、Ingress Controller) kubernetes 存储 kubernetes 从1.23.x 升级到 1.24.x 编写 kubernetes 资源描述文件 kubernetes manual expansion kubernetes 调度过程 k8s本地联调神器kt-connect OpenELB:让k8s私有环境对外暴露端口 kubernetes ansible自动化部署 kubernetes 脚本快速安装 kubernetes面试题汇总 Kubernetes 安装 Harbor 搭建 Kubernetes 实验手册(1) Keepalived高可用 k3s 升级版本 helm 安装 k8s 部署loki日志 Kubernetes k8s 组件
Kubernetes 创建nfs存储类
2021-12-13 · via k8s入门系列 on 打工人日志

Kubernetes 创建 nfs 存储类

首先你需要在别的终端上创建 nfs 服务并能提供 nfs 访问
Kubernetes 不包含内部 NFS 驱动。你需要使用外部驱动为 NFS 创建 StorageClass。
https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner
安装 nfs 驱动

安装 nfs 驱动

1#安装nfs客户端
2apt-get install nfs-common
3git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git
4cd nfs-subdir-external-provisioner/deploy
5k3s kubectl create -f rbac.yaml
6vim deployment.yaml
  1. 编辑 deployment.yaml
 1apiVersion: apps/v1
 2kind: Deployment
 3metadata:
 4  name: nfs-client-provisioner
 5  labels:
 6    app: nfs-client-provisioner
 7  # replace with namespace where provisioner is deployed
 8  namespace: default
 9spec:
10  replicas: 1
11  strategy:
12    type: Recreate
13  selector:
14    matchLabels:
15      app: nfs-client-provisioner
16  template:
17    metadata:
18      labels:
19        app: nfs-client-provisioner
20    spec:
21      serviceAccountName: nfs-client-provisioner
22      containers:
23        - name: nfs-client-provisioner
24          image: k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
25          volumeMounts:
26            - name: nfs-client-root
27              mountPath: /persistentvolumes
28          env:
29            - name: PROVISIONER_NAME
30              value: k8s-sigs.io/nfs-subdir-external-provisioner
31            - name: NFS_SERVER
32              value: 192.168.99.235
33            - name: NFS_PATH
34              value: /volume2/nfs-k8s
35      volumes:
36        - name: nfs-client-root
37          nfs:
38            server: 192.168.99.235
39            path: /volume2/nfs-k8s
  1. 定义存储类
1k3s kubectl create -f deployment.yaml
2k3s kubectl create -f class.yaml

测试存储是否正常

1k3s kubectl create -f test-claim.yaml -f test-pod.yaml
2k3s kubectl delete -f test-claim.yaml -f test-pod.yaml

创建有状态 pods(mysql)

创建 mysql-deployment.yaml

 1apiVersion: v1
 2kind: Service
 3metadata:
 4  name: mysql
 5spec:
 6  ports:
 7    - port: 3306
 8      targetPort: 3306
 9  selector:
10    app: mysql
11  clusterIP: None
12  type: LoadBalancer
13---
14apiVersion: apps/v1
15kind: Deployment
16metadata:
17  name: mysql
18spec:
19  selector:
20    matchLabels:
21      app: mysql
22  strategy:
23    type: Recreate
24  template:
25    metadata:
26      labels:
27        app: mysql
28    spec:
29      containers:
30        - image: mysql:5.7
31          name: mysql
32          env:
33            # Use secret in real usage
34            - name: MYSQL_ROOT_PASSWORD
35              value: password
36          ports:
37            - containerPort: 3306
38              name: mysql
39          volumeMounts:
40            - name: mysql-persistent-storage
41              mountPath: /var/lib/mysql
42      volumes:
43        - name: mysql-persistent-storage
44          persistentVolumeClaim:
45            claimName: mysql-pv-claim

创建 mysql-pv.yaml

 1apiVersion: v1
 2kind: PersistentVolume
 3metadata:
 4  name: mysql-pv-volume
 5spec:
 6  storageClassName: managed-nfs-storage
 7  capacity:
 8    storage: 20Gi
 9  accessModes:
10    - ReadWriteOnce
11  nfs:
12    server: 192.168.99.235
13    path: "/volume2/nfs-k8s"
14---
15apiVersion: v1
16kind: PersistentVolumeClaim
17metadata:
18  name: mysql-pv-claim
19spec:
20  storageClassName: managed-nfs-storage
21  accessModes:
22    - ReadWriteMany
23  resources:
24    requests:
25      storage: 20Gi

部署 mysql

1k3s kubectl apply -f mysql-pv.yaml
2k3s kubectl apply -f mysql-deployment.yaml
3k3s kubectl describe deployment mysql