![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
K8s
文章平均质量分 91
KKang@
这个作者很懒,什么都没留下…
展开
-
K8s----Volumes(三)NFS动态分配PV
K8s----Volumes之NFS动态分配PV1 NFS Client Provisioner的介绍2 NFS动态分配PV的部署2.1 配置授权2.2 部署NFS Client Provisioner2.3 创建 NFS SotageClass2.4 创建PVC和测试pod2.5 设定默认的StorageClass2.6 维持Pod的拓扑状态2.7 StatefulSet控制器2.8 StatefulSet对存储状态的管理2.9 kubectl 弹缩1 NFS Client Provisioner的介原创 2021-03-30 16:00:00 · 978 阅读 · 2 评论 -
K8s-----Volumes(二)静态NFS创建pv
K8s-----Volumes之PV静态NFS服务1 持久卷1.1 持久卷的介绍1.2 持久卷的相关知识2 NFS持久化存储2.1 实验环境2.2 NFS持久化存储实验2.2.1 创建NFS PV卷2.2.2 创建PVC2.2.3 Pod挂载PV2.3 测试1 持久卷1.1 持久卷的介绍(1)PersistentVolume(持久卷,简称PV)是集群内,由管理员提供的网络存储的一部分。就像集群中的节点一样,PV也是集群中的一种资源。它也像Volume一样,是一种volume插件,但是它的生命周期却是和原创 2021-03-30 15:59:39 · 238 阅读 · 1 评论 -
K8s-----Volumes(一)配置管理(emptyDir、hostPath、nfs)
容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失,因为容器会以干净的状态重建。其次,当在一个 Pod 中同时运行多个容器时,常常需要在这些容器之间共享文件。 Kubernetes 抽象出 Volume 对象来解决这两个问题。Kubernetes 卷具有明确的生命周期,与包裹它的 Pod 相同。 因此,卷比 Pod 中运行的任何容器的存活期都长,在容器重新启动时数据也会得到保留。 当然,当一个 Pod 不再存原创 2021-03-30 15:59:20 · 1452 阅读 · 1 评论 -
K8s-------kubeapps的部署和应用
这里写自定义目录标题helm pull bitnami/kubeappsvim helm/kubeapps/values.yamlvim helm/kubeapps/charts/postgresql/values.yamlkubectl create namespace kubeappshelm install kubeapps -n kubeapps .kubectl -n kubeapps get sakubectl create serviceaccount kubeapps-o原创 2021-03-08 21:53:50 · 1390 阅读 · 0 评论 -
K8s-------Helm之metrics-server的部署
Helm部署metrics-server(1)创建命名空间:kubectl create namespace metrics-server(2)拉取metrics-server:helm pull bitnami/metrics-server(3)部署metrics-server:helm install metrics-server . -n metrics-server(4)查看metrics-server命名空间的信息:kubectl get all -n metrics-server原创 2021-03-05 22:07:23 · 1009 阅读 · 0 评论 -
K8s-----Helm之Mychart的部署(升级、回滚)
helm envmkdir /root/.local/share/helm/plugins/push -ptar zxf helm-push_0.9.0_linux_amd64.tar.gz -C /root/.local/share/helm/plugins/pushhelm pushcp /etc/docker/certs.d/reg.westos.org/ca.crt /etc/pki/ca-trust/source/anchors/update-ca-trusthelm repo ..原创 2021-03-05 22:06:05 · 1339 阅读 · 1 评论 -
K8s----Helm包管理工具(redis-ha和metrics-server)
K8s----Helm包管理工具1 Helm 部署2 Helm 部署redis应用1 Helm 部署(1)下载helm软件包官网:https://helm.sh/docs/intro/quickstart/(2)补齐helm命名echo "source <(helm completion bash)" >> ~/.bashrcsource ~/.bashrc(3)搜索官方helm hub chart库:helm search hub redis-ha(4)Helm原创 2021-03-04 13:49:12 · 601 阅读 · 1 评论 -
K8s-----HPA自动伸缩
K8s-----HPA自动伸缩1 HPA伸缩过程2 HPA进行伸缩算法2.1 cpu限制2.2 cpu和内存限制1 HPA伸缩过程收集HPA控制下所有Pod最近的cpu使用情况(CPU utilization),对比在扩容条件里记录的cpu限额(CPUUtilization)调整实例数(必须要满足不超过最大/最小实例数)每隔30s做一次自动扩容的判断CPU utilization的计算方法是用cpu usage(最近一分钟的平均值,通过metrics可以直接获取到)除以cpu request(这里cp原创 2021-03-04 13:48:52 · 1000 阅读 · 1 评论 -
K8s------Metrics-Server资源监控
Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了Metrics-Server之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据。Metrics API 只可以查询当前的度量数据,并不保存历史数据。Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 维护。必须部署 metrics-s原创 2021-03-04 13:48:28 · 4497 阅读 · 2 评论 -
K8s存储------(五)访问控制(认证、授权(RBAC)、准入控制)
拉取私有仓库的镜像(1)应用文件:kubectl apply -f pod3.ymlapiVersion: v1kind: Podmetadata: name: podspec: containers: - name: redis-photo image: reg.westos.org/linux/redis-photon查看pod的信息:kubectl get pod,私有仓库镜像拉取失败查看pod的详细信息:kubectl describe pod p原创 2021-03-04 13:47:22 · 772 阅读 · 0 评论 -
K8s存储------(四)调度(亲和和反亲和)
kubectl run demo --image=busyboxplus -itkubectl apply -f demo.ymlkubectl get podkubectl describe pod nginxkubectl apply -f demo.ymlkubectl get podkubectl describe pod nginx节点标签kubectl apply -f demo.ymlapiVersion: v1kind: Podmetadata: name原创 2021-03-04 13:46:45 · 602 阅读 · 0 评论 -
k8s存储------(三)容器资源限制
k8s------容器资源限制1 k8s容器资源限制简介2 容器资源限制的类型2.1 内存限制示例2.2 CPU限制示例2.3 为namespace设置资源限制2.4 为namespace设置资源配额2.4 为 Namespace 配置Pod配额1 k8s容器资源限制简介(1)Kubernetes采用request和limit两种限制类型来对资源进行分配:request(资源需求):运行Pod的节点必须满足运行Pod的最基本需求才能运行Podlimit(资源限额):运行Pod期间,可能内存使用量会原创 2021-03-04 13:45:30 · 734 阅读 · 0 评论 -
K8s-----网络插件之Flannel
k8s通过CNI接口接入其他插件来实现网络通讯。目前比较流行的插件有flannel,calico等。CNI插件存放位置:# cat /etc/cni/net.d/10-flannel.conflist插件使用的解决方案如下:虚拟网桥,虚拟网卡,多个容器共用一个虚拟网卡进行通信。多路复用:MacVLAN,多个容器共用一个物理网卡进行通信。硬件交换:SR-LOV,一个物理网卡可以虚拟出多个接口,这个性能最好。(1)容器间通信:同一个pod内的多个容器间的通信,通过lo即可实现(2)pod之间的通原创 2021-03-01 23:31:59 · 1220 阅读 · 1 评论 -
K8s存储-----(二)Secret配置管理
kubectl get sakubectl describe sa defaultkubectl get secretskubectl get podkubectl describe pod demo-5756f5b97-xwv46## 在容器内执行指令[root@server2 mnt]# kubectl exec demo-5756f5b97-xwv46 -- ls /var/run/secrets/kubernetes.io/serviceaccountca.crtnamesp原创 2021-03-01 23:31:21 · 3334 阅读 · 0 评论 -
K8s存储-----(一)Configmap配置管理
Configmap用于保存配置数据,以键值对形式存储。configMap 资源提供了向 Pod 注入配置数据的方法。旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。典型的使用场景:填充环境变量的值设置容器内的命令行参数填充卷的配置文件创建ConfigMap的方式有4种(1)使用字面值创建kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2kubect原创 2021-03-01 23:31:03 · 695 阅读 · 0 评论 -
K8s------Metallb实现Load Balancer服务
https://metallb.universe.tf/installation/kubectl edit configmap -n kube-system kube-proxykubectl get pod -n kube-system |grep kube-proxy | awk ‘{system(“kubectl delete pod “$1” -n kube-system”)}’wget https://raw.githubusercontent.com/metallb/metallb/v原创 2021-03-01 23:30:40 · 2206 阅读 · 1 评论 -
K8s------(八)网络插件Calico
https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremisescalico是三层策略,点对点1 安装calico(1)wget https://docs.projectcalico.org/manifests/calico.yaml(2)将安装插件需要的镜像上传至harbor仓库禁止PIP工作模式:适用于互相访问的pod不在同一个网段中,跨网段访问的场景默认使用BGP工作模原创 2021-03-01 23:30:25 · 909 阅读 · 0 评论 -
K8s-----(七)Ingress服务
一种全局的、为了代理不同后端 Service 而设置的负载均衡服务,就是 Kubernetes 里的Ingress 服务。Ingress由两部分组成:Ingress controller和Ingress服务。Ingress Controller 会根据你定义的 Ingress 对象,提供对应的代理能力。业界常用的各种反向代理项目,比如 Nginx、HAProxy、Envoy、Traefik 等,都已经为Kubernetes 专门维护了对应的 Ingress Controller。https://kub原创 2021-02-27 01:22:36 · 5848 阅读 · 3 评论 -
K8s-----(六)Service的类型
Service 是由 kube-proxy 组件,加上 iptables 来共同实现的.kube-proxy 通过 iptables 处理 Service 的过程,需要在宿主机上设置相当多的 iptables 规则,如果宿主机有大量的Pod,不断刷新iptables规则,会消耗大量的CPU资源kubectl create deployment nginx --image=myapp:v1 --replicas=3kubectl expose deployment nginx --port=80 ku原创 2021-02-27 00:06:50 · 1508 阅读 · 1 评论 -
K8s-----(五)探针的使用
kubelet 使用存活探测器来知道什么时候要重启容器。 例如,存活探测器可以捕捉到死锁(应用程序在运行,但是无法继续执行后面的步骤)。 这样的情况下重启容器有助于让应用程序在有问题的情况下更可用。kubelet 使用就绪探测器可以知道容器什么时候准备好了并可以开始接受请求流量, 当一个 Pod 内的所有容器都准备好了,才能把这个 Pod 看作就绪了。 这种信号的一个用途就是控制哪个 Pod 作为 Service 的后端。 在 Pod 还没有准备好的时候,会从 Service 的负载均衡器中被剔除的。k原创 2021-02-26 21:56:51 · 2653 阅读 · 1 评论 -
K8s-----(四)控制器的使用
ReplicaSet编辑清单资源文件:vim deployment.ymlapiVersion: apps/v1kind: ReplicaSetmetadata: name: deploymentspec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containe原创 2021-02-26 20:46:13 · 585 阅读 · 0 评论 -
K8s-----(三)资源清单文件的编写
资源清单1 格式apiVersion: group/version ## api资源属于的组和版本,同一个组可以有多个版本 kind: ## 标记创建的资源类型,## k8s主要支持以下资源类别:Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob metadata: ## 元数据 name: ## 对像名称 namespace: ## 对象所属命名空间原创 2021-02-26 16:08:50 · 994 阅读 · 0 评论 -
K8s-----(二)Pod管理
实验环境:(1)server1:搭建harbor仓库(2)k8s的部署: server2:k8s主节点 server3、server4:k8s子节点(3)k8s的各个节点可以使用harbor仓库 server1-4: vim /etc/hosts 172.25.12.1 server1 reg.westos.org mkdir /etc/docker/certs.d/red.westos.org -p server1: cp /certs/westos.org.c原创 2021-02-26 15:10:52 · 1419 阅读 · 0 评论 -
K8s----安装部署kubeadm
1 实验环境server2、server3、server4的配置(CPU:2核,memory:2048)(1) 关闭防火墙和selinux,部署docker-ce(2)设置docker开机启动:systemctl enable --now docker.service(3) 修改cgroup的驱动查看docker的驱动信息:docker info,默认的是cgroups的方式编辑配置文件修改cgroup的驱动类型:vim /etc/docker/daemon.json{ "exe原创 2021-02-01 10:05:12 · 269 阅读 · 0 评论