简单来说就是数据持久化的一堆事ヾ(≧▽≦*)o一. nfs网络存储#使用nfs作为数据存储,首先要找一台作为nfs服务器#我这里使用192.168.1.22部署#安装服务(所有需要nfs的节点都要有)yum -y install nfs-utils#添加nfs信息echo "/data/nfs *(rw,no_root_squash)" >> /etc/exports#创建目录mkdir /data/nfs -psystemctl restart r.
自定义chart包1. 使用名称创建chart目录[root@k8s-master01 ~]# helm create mychart[root@k8s-master01 ~]# cd mychart/[root@k8s-master01 mychart]# lscharts Chart.yaml templates values.yaml#目录结构说明charts #普通目录Chart.yaml #用于配置chart 的基本信息templates #自
三. pv卷的类型1.静态pv卷集群管理员创建一些 PV。它们带有可供群集用户使用的实际存储的细节(连接的ip等等)它们存在于 Kubernetes API 中,可用于消费(pvc调用绑定) #如上案例2.动态pv卷当管理源创建的pv卷 全部都不匹配用户的pvc时,集群可能会尝试动态的pvc创建pv卷(就是说,你新建了一个应用,标名了pvc,但是没有pv,他就会帮你建立一个pv)而这个机制 就是"StorageClass",pvc必须请求[存储类],并且管理源必须创建
当集群内大量pod的配置需要更新时,我们通常会先选择部分pod进行更新,而不是全部同时更新#我们可以在yaml文件中添加以下配置spec: updateStrategy: type: OnDelete #删除策略#这样当控制器的配置更新后,必须手动删除pod才会更新配置...
1. 什么是controller(控制器) controller控制器是在k8s集群中管理和运行容器的一个对象,和pod这种概念性的不同,他是真实存在的,用于保证pod副本数量为预期值。 2. pod和Controller关系 总的来说,Controller(控制器)是pod的一个管理者,Controller(控制器) 需要保证集群内一组pod能够始终保持在某个期望的状态正常运行(比如,有一个容器挂掉了,会根据这个副本的期望值去创建新的副本来保证副本一定满足某个数量) 这...
部署node节点 这里是先只在master节点上部署node组件的 后续将node组件直接拷贝到其他节点上使用一. 部署kubelet#所有操作在master执行#拷贝node所需组件的二进制文件cd ~/kubernetes/server/bin/cp kubelet kube-proxy /opt/kubernetes/bin1. 添加kubelet配置#注意修改--hostname-override=为当前主机ipcat > /opt/kuberne..
1. 拉取etcd二进制包#下载地址https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-linux-amd64.tar.gz#安装部署mkdir /opt/etcd/{bin,cfg,ssl} -p#将刚才生成的证书添加到ssl目录下cp ~/TLS/etcd/ca*pem ~/TLS/etcd/server*pem /opt/etcd/ssl/#解压安装tar zxvf etcd-v3.4
部署cni网络#下载地址https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-linux-amd64-v0.8.6.tgz#解包cd ~mkdir /opt/cni/bin -ptar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin#获取yaml文件https://raw.githubuserconten
一. pod镜像获取策略apiVersion: v1kind: Podmetadata: name: mypodspec: containers: - name: nginx image: nginx:1.14 imagePullPolicy: Always #镜像拉取策略参数IfNotPresent #默认值,镜像在宿主机上不存在时才拉取Always #每次创建pod都会重新拉取一次镜像Never .
1. 自签证书颁发机构(CA)cd ~/TLS/k8s/添加证书配置cat > ca-config.json<< EOF{ "signing": { "default": { "expiry": "87600h" }, "profiles": { "kubernetes": { "expiry": "87600h", "usages": [ "signing",
授权 apiserver 访问 kubeletcat > apiserver-to-kubelet-rbac.yaml<< EOFapiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: annotations: rbac.authorization.kubernetes.io/autoupdate: "true" labels: kubernetes.io/bootstrapp
1. 将master节点node组件配置拷贝到其他节点(21/22)#拷贝kubernetes目录scp -r /opt/kubernetes root@192.168.1.21:/opt/scp -r /opt/kubernetes root@192.168.1.22:/opt/#拷贝服务文件scp -r /usr/lib/systemd/system/{kubelet,kube-proxy}.service root@192.168.1.21:/usr/lib/systemd/syste
kubectl是用来管理kubernetes集群的一个命令行工具。可以用来对集群安装、管理应用服务( ̄▽ ̄)"语法格式kubectl [comand] [type] [name] [flags]参数说明#参数comand #指定要对资源执行的操作 type #指定要操作的资源类型,资源类型是大小写name #资源的名称,如果不指定则显示所有flags #可选参数 例如: 可以用-s 或者-server参数指定k8s api s..
前言我讨厌写概念,因为我自己老忘╰( ̄ω ̄o) 就当留笔记了一. pod的基本概念1. 最小部署单元2. 包含多个容器 (一组容器的集合)3. 一个pod中容器共享网络命名空间4. pod是短暂的为什么说最小单元是pod而不是容器呢?#首先我们要知道,容器是由docker创建的,每个容器都要在系统中占用一个进程[root@k8s-master01 ~]# docker top test(容器id或名称)UID PID .
yaml文件----排版很舒服的文件o(* ̄▽ ̄*)o 不过yaml文件有几个编写要求yaml文件编写格式1. 通过缩进表示不同的层级2. 不能使用tab缩进,只能用空格3. 一般开头缩进2两个空格4. 每个字符后面缩进一个空格5. 3个横杠"---"表示下一个yaml文件的开始6. 使用"#"注释先上一段案例#这是上一章我们创建的时候用的,这里说明一下是什么意思apiVersion: apps/v1kind: Deploymentmetadata: nam..
(嘿哈~~~诈尸中)ヾ(≧▽≦*)o调度策略是很常用的东西,不要随便跳过哦~pod创建流程1. 用户执行 kubectl create pod时,会先访问apiserver组件,并将创建的相关信息存储到etcd中2. scheduler组件会实时监听apiserver是否有新的pod创建的信息。如果有,则会通过apiserver读取etcd。通过调度算法,把pod调度到某个node节点上。然后将这个调度信息结果返回给apiserver,给etcd做存储(写入)3. 在node节.
lj..
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号