学习Kubernetes笔记——安装NFS驱动
K8S指定nfs挂载

K8S指定nfs挂载在项⽬中,pod 需要挂载外部的⽂件才可以使⽤创建 nfs 挂载点,并把⽂件放进去mkdir -p /data2/nfs/test_gc_wms/vi /etc/exports/data2/nfs/test_gc_wms 192.168.0.0/24(rw,sync,no_root_squash)# 重启 nfssystemctl restart rpcbindsystemctl restart nfs# 关闭防⽕墙systemctl stop firewalld# 把需要的⽂件放⼊ /data2/nfs/test_gc_wms/# 测试是否正常提供 nfs ⽬录showmount -e 192.168.0.168创建 pv 和 pvcvi nfs.yamlapiVersion: v1kind: PersistentVolumemetadata:name: kl-test # pv 名字namespace: klvchenlabels:app: kl-test # 定义 labels ap: kl-testspec:capacity:storage: 10Mi # 定义容量accessModes:- ReadWriteMany # 访问模式persistentVolumeReclaimPolicy: Retain # 回收策略storageClassName: nfs # 定义 storageClassName 只有相同名字的才能绑定在⼀起nfs:path: /data2/nfs/test_gc_wmsserver: 192.168.0.168---kind: PersistentVolumeClaimapiVersion: v1metadata:name: kl-test # pvc 名字namespace: klvchenspec:storageClassName: nfs # Name of Storage Class Name, use same class name defined in pvaccessModes:- ReadWriteManyresources:requests:storage: 10Mi # amout of Storage requestselector:matchLabels:app: kl-test # 指定 pv 的标签 kl-testkubectl apply -f nfs.yaml创建使⽤ pvc 的例⼦# 注意该 worker 节点需要安装 nfs-utilsyum install nfs-utils -yvi demo.yamlapiVersion: apps/v1kind: Deploymentmetadata:name: nfs-pvcnamespace: klvchenspec:replicas: 1selector:matchLabels:app: nfs-pvctemplate:metadata:labels:app: nfs-pvcspec:containers:- name: nginximage: nginx:1.7.9imagePullPolicy: IfNotPresentports:- containerPort: 80name: webvolumeMounts:- name: kl-testmountPath: /usr/share/nginx/htmlvolumes:- name: kl-testpersistentVolumeClaim:claimName: kl-testkubectl apply -f demo.yaml若想把 nfs ⼀个⽬录下两个⽂件夹分开挂载,可以使⽤ subPath,在 nfs ⽬录下必须先包含 subPath 的⽬录cat /etc/exports/data2/nfs/test_gc_klvchen 172.18.186.0/24(rw,sync,no_root_squash)ls /data2/nfs/test_gc_klvchen/certs sensitive# pvc 与 pv 不需要改变,在配置 volumeMounts 的时候指定 subPath 即可以让 nfs ⽬录下的# certs 挂载到容器中的 /usr/local/certs;# sensitive 挂载到容器中的 /usr/local/sensitivevolumeMounts- name: "gc-klvchen"mountPath: "/usr/local/certs"subPath: "certs"- name: "gc-klvchen"mountPath: "/usr/local/sensitive"subPath: "sensitive"volumes:- name: "gc-klvchen"persistentVolumeClaim:claimName: "gc-klvchen"AccessModes 是⽤来对 PV 进⾏访问模式的设置,⽤于描述⽤户应⽤对存储资源的访问权限,访问权限包括下⾯⼏种⽅式:- ReadWriteOnce(RWO):读写权限,但是只能被单个节点挂载- ReadOnlyMany(ROX):只读权限,可以被多个节点挂载- ReadWriteMany(RWX):读写权限,可以被多个节点挂载persistentVolumeReclaimPolicy(回收策略)这⾥指定的 PV 的回收策略为 Recycle,⽬前 PV ⽀持的策略有三种:- Retain(保留)- 保留数据,需要管理员⼿⼯清理数据- Recycle(回收)- 清除 PV 中的数据,效果相当于执⾏ rm -rf /thevoluem/*- Delete(删除)- 与 PV 相连的后端存储完成 volume 的删除操作,当然这常见于云服务商的存储服务,⽐如 ASW EBS。
K8S部署ES集群-运维笔记

K8S部署ES集群-运维笔记⼀、使⽤NFS配置持久化存储1)在NFS服务器端(172.16.60.238)通过nfs创建es、filebeat共享⽬录[root@k8s-harbor01 k8s]# mkdir -p /data/storage/k8s/es2)创建NFS的rbac[root@k8s-master01 k8s_project]# cd[root@k8s-master01 ~]# cd /opt/k8s/k8s_project/[root@k8s-master01 k8s_project]# mkdir elk[root@k8s-master01 k8s_project]# cd elk/[root@k8s-master01 elk]# vim nfs-rbac.yaml---apiVersion: v1kind: ServiceAccountmetadata:name: nfs-provisionernamespace: wiseco---kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata:name: nfs-provisioner-runnernamespace: wisecorules:- apiGroups: [""]resources: ["persistentvolumes"]verbs: ["get", "list", "watch", "create", "delete"]- apiGroups: [""]resources: ["persistentvolumeclaims"]verbs: ["get", "list", "watch", "update"]- apiGroups: ["storage.k8s.io"]resources: ["storageclasses"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["events"]verbs: ["watch", "create", "update", "patch"]- apiGroups: [""]resources: ["services", "endpoints"]verbs: ["get","create","list", "watch","update"]- apiGroups: ["extensions"]resources: ["podsecuritypolicies"]resourceNames: ["nfs-provisioner"]verbs: ["use"]---kind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata:name: run-nfs-provisionersubjects:- kind: ServiceAccountname: nfs-provisionernamespace: wisecoroleRef:kind: ClusterRolename: nfs-provisioner-runnerapiGroup: rbac.authorization.k8s.io创建和查看[root@k8s-master01 elk]# kubectl apply -f nfs-rbac.yamlserviceaccount/nfs-provisioner createdclusterrole.rbac.authorization.k8s.io/nfs-provisioner-runner createdclusterrolebinding.rbac.authorization.k8s.io/run-nfs-provisioner created[root@k8s-master01 elk]# kubectl get sa -n wiseco|grep nfsnfs-provisioner 1 4s[root@k8s-master01 elk]# kubectl get clusterrole -n wiseco|grep nfsnfs-provisioner-runner 2021-02-19T08:39:05Z[root@k8s-master01 elk]# kubectl get clusterrolebinding -n wiseco|grep nfsrun-nfs-provisioner ClusterRole/nfs-provisioner-runner⼆、ES集群部署ES7.0+新版废弃了原先discovery.zen.ping.unicast.hosts及discovery.zen.minimum_master_nodes的探测⽅式,⽽是改为了discovery.seed_hosts及cluster.initial_master_nodes。
nfs用法

NFS(Network File System)是一种分布式文件系统,它允许网络上的客户端访问和操作服务器上的文件,就像在本地操作一样。
NFS的主要用途是通过计算机网络共享文件系统,方便用户在不同的机器上访问和操作同一套文件。
NFS的用法相对简单,以下是其基本用法:1.安装NFS服务器和客户端:首先需要在服务器和客户端上安装NFS软件包。
对于大多数Linux发行版,可以使用系统的包管理器来安装。
例如,在基于Debian的系统上,可以使用apt-get install nfs-kernel-server命令来安装NFS服务器软件包,使用apt-get install nfs-common命令来安装NFS客户端软件包。
2.配置NFS服务器:在服务器上,需要配置NFS共享的目录。
通常在NFS服务器的配置文件/etc/exports中指定要共享的目录和访问权限。
例如,/mnt/share *(rw,sync,no_root_squash)表示将/mnt/share目录以读写方式共享给所有客户端。
3.启动NFS服务:配置完成后,需要启动NFS服务。
在大多数Linux发行版上,可以使用/etc/init.d/nfs-kernel-server start命令来启动NFS服务。
4.挂载NFS共享目录:在客户端上,需要将NFS共享目录挂载到本地文件系统上。
可以使用mount -t nfs server:/path/to/share /mnt/nfs命令来挂载NFS共享目录。
其中,server:/path/to/share是NFS服务器的共享路径,/mnt/nfs是本地挂载点。
5.使用NFS共享目录:一旦挂载成功,客户端就可以像操作本地文件一样使用NFS共享目录了。
需要注意的是,使用NFS需要在服务器和客户端之间建立信任关系,通常需要配置防火墙和SELinux等安全机制来保护NFS服务的正常运行。
此外,还需要根据实际需求调整NFS的配置参数,以满足特定的性能和安全性要求。
Kubernetes全栈架构师(二进制高可用安装k8s集群扩展篇)--学习笔记

Kubernetes全栈架构师(⼆进制⾼可⽤安装k8s集群扩展篇)--学习笔记⽬录⼆进制Metrics&Dashboard安装⼆进制⾼可⽤集群可⽤性验证⽣产环境k8s集群关键性配置Bootstrapping: Kubelet启动过程Bootstrapping: CSR申请和证书颁发原理Bootstrapping: 证书⾃动续期原理⼆进制Metrics&Dashboard安装安装CoreDNS安装Metrics Server安装dashboard安装CoreDNS安装对应版本(推荐)cd /root/k8s-ha-install/如果更改了k8s service的⽹段需要将coredns的serviceIP改成k8s service⽹段的第⼗个IPsed -i "s#10.96.0.10#10.96.0.10#g" CoreDNS/coredns.yaml安装corednskubectl create -f CoreDNS/coredns.yaml安装最新版CoreDNS(不推荐)git clone https:///coredns/deployment.gitcd deployment/kubernetes# ./deploy.sh -s -i 10.96.0.10 | kubectl apply -f -serviceaccount/coredns createdclusterrole.rbac.authorization.k8s.io/system:coredns createdclusterrolebinding.rbac.authorization.k8s.io/system:coredns createdconfigmap/coredns createddeployment.apps/coredns createdservice/kube-dns created查看状态kubectl get po -n kube-system -l k8s-app=kube-dns状态NAME READY STATUS RESTARTS AGEcoredns-fb4874468-nr5nx 1/1 Running 0 49s强制删除⼀直处于Terminating的pod[root@k8s-master01 ~]# kubectl get po -n kube-system -l k8s-app=kube-dnsNAME READY STATUS RESTARTS AGEcoredns-fb4874468-fgs2h 1/1 Terminating 0 6d20h[root@k8s-master01 ~]# kubectl delete pods coredns-fb4874468-fgs2h --grace-period=0 --force -n kube-systemwarning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.pod "coredns-fb4874468-fgs2h" force deleted[root@k8s-master01 ~]# kubectl get po -n kube-system -l k8s-app=kube-dnsNo resources found in kube-system namespace.安装Metrics Server在新版的Kubernetes中系统资源的采集均使⽤Metrics-server,可以通过Metrics采集节点和Pod的内存、磁盘、CPU和⽹络的使⽤率。
NFS服务器安装调试全攻略

NFS是文件系统。
在网络存储方面我们应该有所了解。
那么针对NFS服务器的安装和设置我们来详细介绍一下。
首先让我们看一下NFS服务器的安装步骤。
一、NFS服务器的安装检查linux系统中是否安装了nfs-utils和portmap两个软件包(RHEL4系统默认已经安装了这两个软件包)命令#rpm –q nfs-utilsportmap二、查看NFS服务器是否启动命令#service nfsstarus#service portmap status三、如果服务器没有启动,则开启服务(默认服务下nfs没有完全开启)命令#service nfs start#service portmap start四、指定NFS服务器的配置文件NFS服务器的配置文件保存"/etc/"目录中,文件名称是"exports",该文件用于被指NFS服务器提供的目录共享命令#vi /etc/exports配置"exports"文件格式如下/home *(sync,ro)Home:共享目录名*:表示所有主机(sync,ro):设置选项exports文件中的"配置选项"字段放置在括号对("()")中 ,多个选项间用逗号分隔sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项ro:设置输出的共享目录只读,与rw不能共同使用rw:设置输出的共享目录可读写,与ro不能共同使用exports文件中"客户端主机地址"字段可以使用多种形式表示主机地址192.168.152.13 指定IP地址的主机 指定域名的主机192.168.1.0/24 指定网段中的所有主机* 指定域下的所有主机* 所有主机五、重新输出共享目录Exportfs管理工具可以对"exports"文件进行管理命令#exportfs –rv 可以让新设置的"exports"文件内容生效六、显示NFS服务器的输出目录列表显示当前主机中NFS服务器的输出列表# showmount -e七、显示NFS服务器中被挂载的共享目录显示当前主机NFS服务器中已经被NFS客户机挂载使用的共享目录# showmount -d八、在另外一个linux系统中挂在共享目录显示NFS服务器的输出# showmount -e 172.16.75.1挂载NFS服务器中的共享目录# mount -t nfs 172.16.75.1:/software /mnt/九、查看mnt目录中的内容Cd /mnt |ll十、卸载系统中已挂载的NFS共享目录命令# umount /mnt/总结:1、在配置NFS服务器之前用ping命令确保两个linux系统正常连接,如果无法连接关闭图形界面中的防火墙#service iptables stop2、在配置中确保输入的命令是正确的3、更改完"exports"文件后要输入exportfs –rv ,使得"exports"文件生效.4、检查nfs服务是否开启,默认是关闭的.5、卸载的时候不能在/mnt目录中卸载,必须注销系统后卸载.。
容器编排工具K3s的使用与配置指南

容器编排工具K3s的使用与配置指南K3s是一个轻量级的Kubernetes发行版,被设计用于在边缘计算环境中部署和管理容器化应用程序。
它具有小巧、易于部署和配置的特点,适用于资源有限的设备和网络较弱的环境中使用。
本文将为您介绍K3s的使用和配置指南,帮助您快速上手并有效管理容器化应用程序。
一、K3s的安装与部署要安装和部署K3s,首先需要准备一台运行Linux操作系统的机器。
K3s支持多种操作系统,如Ubuntu、CentOS、Raspbian等。
您可以通过官方的安装脚本进行安装,也可以手动下载二进制文件进行安装。
安装过程比较简单,只需执行几个命令即可完成。
安装完毕后,您可以通过运行以下命令来检查K3s服务是否正常运行:```sudo systemctl status k3s```如果服务运行正常,您将看到类似“active (running)”的输出。
现在,您已成功安装和部署了K3s。
二、K3s的配置配置K3s是为了确保它满足您的特定需求和环境。
以下是一些常见的配置选项:1. 网络配置K3s支持多种网络插件,您可以选择适合您的网络环境的插件。
默认情况下,K3s使用Flannel作为网络插件,但您也可以选择Calico、Weave等其他插件。
您可以通过修改配置文件来更改网络插件。
2. 存储配置K3s支持将容器的数据存储在本地或远程存储中。
您可以根据需要选择合适的存储驱动程序,并配置存储选项。
例如,您可以使用本地文件系统、NFS、Ceph等作为存储后端。
3. 认证和授权配置K3s支持多种认证和授权方式,您可以根据需求选择合适的配置选项。
例如,您可以使用基于证书的认证、RBAC(基于角色的访问控制)等进行身份验证和授权。
4. 高可用性配置如果您需要将K3s部署为高可用集群,您可以配置多个节点并设置相应的选项。
K3s提供了一些配置参数,如--cluster-init、--token等,用于初始化和加入集群。
NFS的设置步骤

NFS的设置步骤NFS(Network File System)是一种分布式文件系统,可以让不同的计算机通过网络共享文件。
在使用NFS之前,需要进行一系列的设置步骤来配置和启动NFS服务器和客户端。
以下是配置和启动NFS的详细步骤:1.安装NFS服务器和客户端软件:首先,要在服务器和客户端机器上安装NFS软件包。
可以通过以下命令安装NFS服务器软件包:```sudo apt-get install nfs-kernel-server```同样地,可以通过以下命令安装NFS客户端软件包:``````2.配置NFS服务器:```sudo nano /etc/exports```在文件中,每一行表示一个共享目录的配置。
每条配置项包括共享目录的路径、访问权限、允许访问的客户端以及其他选项。
例如:```/path/to/shared/directory client_ip(rw,sync,no_subtree_check) ```3.启动NFS服务器:使用以下命令启动NFS服务器:```sudo systemctl start nfs-kernel-server```该命令将启动NFS服务器并开始监听来自客户端的连接请求。
4.配置NFS客户端:```sudo nano /etc/fstab```在文件中,每一行表示一个挂载目录的配置。
每条配置项包括NFS服务器的IP地址或主机名、共享目录的路径、挂载点路径以及其他选项。
例如:```nfs_server_ip:/path/to/shared/directory /path/to/mount/point nfs rw 0 0```5.挂载NFS共享目录:使用以下命令挂载NFS共享目录:```sudo mount -a```该命令将挂载在`/etc/fstab`文件中定义的所有共享目录。
6.验证NFS设置:可以在客户端上使用以下命令验证NFS设置是否正确:```df -h```该命令将显示挂载的文件系统,包括NFS共享目录。
基于ARM6410-Ubuntu的NFS挂载方法及驱动模块加载方法

NFS服务器的配置一、NFS服务器端的配置,即共享发布者(一)需启动的服务和需安装的软件1、NFS服务器必须启动两个daemons服务:rpc.nfsd和rpc.mountdrpc.nfsd:用来管理客户端PC是否可以登录。
类似于windows中的共享权限。
rpc.mountd:用来管理客户端pc能够使用的文件安全权限。
如windows中的共享安全权限。
RPC:因为NFS支持的功能很多,所以NFS的功能对应的端口才无法固定,而是采用小于1024的随机端口。
但客户端需要得知服务器的端口才能联机,此时就需要启用RPC服务。
RPC的功能就是指定每个NFS功能的端口号。
并传信息给客户端,让客户端可以连到正确的端口上。
服务器在启动NFS时会随机取用数个端口,并主动向RPC注册,因此RPC知道每个NFS 功能对应的端口。
RPC用111端口监听客户端的请求,并应答正确的端口。
启动NFS前,RPC就要先启动了,否则NFS会无法向RPC注册。
2、NFS 服务器需要安装nfs主程序,nfs-utils和rpc主程序portmap(二)exports服务器的方法:1、NFS文件存取权限因为NFS没有验证机制,当客户端用户访问NFS服务器的共享文件夹时会遇到的权限情况:(1)NFS服务器端用户列表中有与客户端用户名相同的用户名时,客户端可以直接存取共享文件夹。
例:客户端用户为khp,而nfs服务器用户列表(/etc/passwd)中也有khp这个用户名,则将拥有KHP权限。
(2)当访问NFS服务器的客户端用户UID与服务器端UID相同,但用户名却不相同时,客户端将拥有与服务器端UID 相同但不同用户的权限。
例:客户端为501UID,用户名为khp的帐号访问NFS服务器。
NFS服务器用户列表中(/etc/passwd)有uid为501 ,但用户名为pla的用户,所以客户端khp用户可以拥有NFS 服务器pla相同权限。
(3)如果客户端用户UID在NFS服务器端用户列表中不存在时,则以匿名用户的权限访问。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习Kubernetes笔记——安装NFS驱动
学习Kubernetes笔记——安装NFS驱动
学习Kubernetes最重要的一步就是安装NFS驱动,因为它可以让你的Kubernetes集群提供一个共享的存储空间,这样你就可以使用它来保存,管理和查看Kubernetes中的对象。
在安装NFS驱动之前,你需要准备好一台装有操作系统的机器,Kubernetes集群中的所有节点都必须连接到该机器以访问NFS服务。
一旦操作系统安装完成,你就可以根据Kubernetes的文档开始安装
NFS驱动了。
首先,你需要安装NFS服务,并将其配置到每个Kubernetes节点,这
样每个节点都能够访问到NFS服务。
然后,你需要创建一个NFS共享,它可以存储Kubernetes集群的所有数据。
其次,你还需要配置Kubernetes集群中的每个节点来使用NFS服务,这一配置可以让Kubernetes集群能够将数据存储到NFS服务。
最后,安装NFS驱动后,你还需要配置Kubernetes,使其能够正确使
用NFS服务,让它能够访问NFS共享的数据。
这样一来,Kubernetes
集群就可以实现完整的共享存储功能,这样你就可以安全快速地使用Kubernetes集群管理数据。