Debian安装NFS
服务端
1 | # 安装nfs服务 |
客户端
1 | # 安装nfs |
编辑fstab 配置自动挂载
1 | sudo vim /etc/fstab |
卸载
1 | sudo umount [local_mount_point] |
需要认证参考为 Linux 客户端设置具有基于 Kerberos 的身份验证的 NFS 服务器 (linux-console.net)
Kubernetes PV/PVC配置模板
本地路径映射(HostPath)
HostPath 卷存在许多安全风险,最佳做法是尽可能避免使用 HostPath。 当必须使用 HostPath 卷时,它的范围应仅限于所需的文件或目录,并以只读方式挂载。
1 | apiVersion: v1 |
支持的 type 值如下:
| 取值 | 行为 |
|---|---|
| 空字符串(默认)用于向后兼容,这意味着在安装 hostPath 卷之前不会执行任何检查。 | |
DirectoryOrCreate |
如果在给定路径上什么都不存在,那么将根据需要创建空目录,权限设置为 0755,具有与 kubelet 相同的组和属主信息。 |
Directory |
在给定路径上必须存在的目录。 |
FileOrCreate |
如果在给定路径上什么都不存在,那么将在那里根据需要创建空文件,权限设置为 0644,具有与 kubelet 相同的组和所有权。 |
File |
在给定路径上必须存在的文件。 |
Socket |
在给定路径上必须存在的 UNIX 套接字。 |
CharDevice |
在给定路径上必须存在的字符设备。 |
BlockDevice |
在给定路径上必须存在的块设备。 |
1 | apiVersion: storage.k8s.io/v1 |
local
local卷只能用作静态创建的持久卷。不支持动态配置。与
hostPath卷相比,local卷能够以持久和可移植的方式使用,而无需手动将 Pod 调度到节点。系统通过查看 PersistentVolume 的节点亲和性配置,就能了解卷的节点约束。
使用 local 卷时,你需要设置 PersistentVolume 对象的 nodeAffinity 字段。 Kubernetes 调度器使用 PersistentVolume 的 nodeAffinity 信息来将使用 local 卷的 Pod 调度到正确的节点。
PersistentVolume 对象的 volumeMode 字段可被设置为 “Block” (而不是默认值 “Filesystem”),以将 local 卷作为原始块设备暴露出来。
1 | apiVersion: v1 |
NFS映射
1 |
Minio
1 |
Ceph
1 |
K3s部署Harbor(私有镜像仓库)
准备环境
证书
[[../杂项/OpenSSL生成自签名证书|OpenSSL生成自签名证书]]
k3s证书管理默认配置文件
1 | helm show values harbor/harbor > harbor-values.yaml |
安装
配置清单
harbor-value.yaml
1 | expose: |
harbor-ingress.yaml
1 | apiVersion: traefik.containo.us/v1alpha1 |
安装Harbor
1 | # 添加Harbor仓库 |
配置
配置library仓库源
1 | kubectl edit configmap harobr-registry -n harbor |
使用Harbor
配置镜像缓存
参考
Kubernetes ≥ 1.25 Containerd配置Harbor私有镜像仓库_containerd登录镜像仓库-CSDN博客
结合Cert-Manager完成Harbor的Https证书自动签发 | 风格 | 风起于青萍之末 (lusyoe.github.io)
Containerd容器镜像管理-腾讯云开发者社区-腾讯云 (tencent.com)
通过helm在k8s上搭建Harbor - 简书 (jianshu.com)
Kubernetes 集群仓库 harbor Helm3 部署-腾讯云开发者社区-腾讯云 (tencent.com)
K3s部署Dashboard
Helm部署
1 | helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ |
配置远程访问
NodePort暴露端口
1 | kubectl -n kubernetes-dashboard edit service kubernetes-dashboard-web |
1 | # Please edit the object below. Lines beginning with a '#' will be ignored, |
Traefik Ingress反向代理
创建证书请求文件dashboard-cert-manager.yaml
1 | apiVersion: cert-manager.io/v1 |
此配置文件是测试版,正式版参考K3s部署cert-manager
1 | kubectl apply -f dashboard-cert-manager.yaml |
配置账户
新建dashboard-admin.yaml
1 | # 创建ServiceAccount |
新建用户
1 | # 部署用户资源 |
获取token
1 | # v1.24+ |
Kubectl部署
最新版本只支持Helm,旧版本v2.7支持Kubectl部署
1 | kubectl apply -f recommended.yaml |
修改recommended.yaml
1 | ... |
dashboard的默认webui证书是自动生成的,由于时间和名称存在问题,导致谷歌和ie浏览器无法打开登录界面,经过测试Firefox可以正常打开。解决证书问题参考Kubernetes Dashboard的安装与坑 - 简书 (jianshu.com)
1 | --- |
生成证书文件 tls.crt,tls.csr,tls.key
1 | # 生成key |
subj子参数解释
| 缩写 | 翻译 | 英文对照 |
|---|---|---|
| C | 国家名称缩写 | Country Name (2 letter code) |
| ST | 州或省名称 | State or Province Name (full name) |
| L | 城市或区域称 | Locality Name (eg, city) |
| O | 组织名(或公司名) | Organization Name (eg, company) |
| OU | 组织单位名称(或部门名) | Organizational Unit Name (eg, section) |
| CN | 服务器域名/证书拥有者名称 | Common Name (e.g. server FQDN or YOUR name) |
| emailAddress | 邮件地址 |
参考
k3s集群单节点部署与集群内DashBoard部署 - 知乎 (zhihu.com)
k3s集群搭建并安装kubernetes-dashboard - 东峰叵,com - 博客园 (cnblogs.com)
[K8S 快速入门(十九)通过Helm 安装 Kubernetes Dashboard_helm安装dashboard ingress-CSDN博客](https://blog.csdn.net/weixin_41947378/article/details/111661539#:~:text=通过Helm 安装 Kubernetes Dashboard 1 1. 下载 %23,外网访问 %23 将svc的ClusterIP改为NotePort,外网访问 … 5 5. 令牌方式登录仪表盘)
使用 traefik ingress暴露kubernetes-dashbord - HTTPS版本_svclb-traefik-CSDN博客
Python使用国内源
常用国内源
1 | https://pypi.tuna.tsinghua.edu.cn/simple |
查看当前镜像地址
1 | pip config list |
临时使用
1 | pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple |
全局修改
1 | pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple |
换回默认
1 | pip config unset global.index-url |
K3s导出证书
1 | # 导出根证书 |
导出Secret
1 | kubectl get secret example-secret -o yaml > example-secret.yaml |
导出内容格式如下
1 | apiVersion: v1 |
Base64解码
1 | # cert |
K3s部署Redis
Kubectl部署
配置文件
Helm部署
添加helm库
1 | # 添加库 |
配置 values.yaml
1 | auth: |
部署
1 | helm install -f values.yaml redis bitnami/redis --namespace --create-namespace |
参考
kubernetes环境部署单节点redis - 紫色飞猪 - 博客园 (cnblogs.com)