本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
k8s的Health Check(健康检查) 强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性。自愈的默认实现方式是自动重启发生故障的容器。除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求: 零停机部署。 避免部署无效的镜像。 ...
Kubernetes之容器数据写满磁盘解决方法磁盘写满引发的后果容器数据磁盘写满造成的后果:Pod 不能删除 (一直 Terminating)Pod 不能被创建 (一直 ContainerCreating)磁盘写满分两种情况:磁盘空间全部使用完# 系统盘被占满
$ df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/vda1 ext4 50G 50G 0G 100% /
/dev/vdb1 ext4 100G 10G 90G 10% /data
磁盘 Inode 全部使用完# 数据盘 Inode 被占满
$ df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/vda1 3276800 3276800 0 100% /
判断磁盘写满方法下面命令能快速的排查...
在 KubeSphere 上安装 PorterLB 本文档介绍如何在KubeSphere Web 控制台上安装和删除 PorterLB。 注意 在 Kubernetes 集群中,您只需要安装一次 PorterLB。安装完成后,将在集群中安装包含 Porter-manager Pod 的 Porter-manager Deployment。Porter-manager Pod 为整个 Kubernetes 集群实现了 PorterLB 的功能。 安装完成后,您可以扩展 Porter-manager Deployment 并将多个 PorterLB 副本(Porter-manager Pod)分配给多个集群节点,以确保高可用性。有关详细信息,请参阅配置多个 PorterLB 副本。 先决条件 您需要使用 KubeSphere 准备一个 Kubernetes 集群,并确保 Kubernetes 版本为 1.15 或更高版本。PorterLB 需要 CustomResourceDefinition (CRD) v1,它仅由 Kubernetes 1.15 或更高版本支持。您可以使用以下方法来安装 KubeSphere: 使用 KubeSphere 部署一个新的 Kubernetes 集群。 ...
Kubesphere使用ingress监控80/443端口实现域名访问1,kubesphere如果需要微服务对外服务,那要创建一个项目网关或是集群网关。这样会开通一个随机NodePort端口,再配置应用路由以提供域名方式访问或是直接通过nodeport暴露端口方式对外服务。2,使用上面方式都是域名+随机端口或是ip+随机端口方式,比较麻烦。这里就在kubeshpere中安装一个ingress入口网关,这样就可以直接使用80或是443端口,达到只使用域名就可以访问。3,具体实现步骤. 1),修改kubernetes的对外端口范围。修改完后,安装好ingress后,可以再修改回来。 k8s默认使用NodePort对外映射端口范围是30000-50000,可以通过修改kube-apiserver参数修改端口范围 修改配置文件/etc/kubernetes/manifests/kube-apiserver.yaml增加或者修改以下配置 - --service-node-port-range=1-65535 vi /etc/kubernetes/manifests/kube-apiserver.yaml如下图: 2),给kubesphere添加ingress服务,具体YAML文件看最后文档。 kubectl apply -f ingress.yaml 添加相关资源。 3),登陆kubesphere的管理员账号,到集群管理页面。查看&nbs...
Docker and system monitoringdocker安装prometheus,grafana,cadvisor并监控容器与主机信息系统指标此仪表板(ID是893)显示 Docker 和系统指标,目的是将所有指标放在一个仪表板上。第一行表示带有仪表和文本/图形的系统度量(易于可视化和极简主义)。时间内存使用/交换磁盘使用情况负荷网络中央处理器使用率磁盘 I/O针对磁盘使用情况、内存使用情况和负载使用情况设置警报,以便在指标受到批评时发出警告。Docker 指标仪表板的第二部分是 Docker 指标,更详细地使用图形。每个容器的 CPU 使用率每个容器的已发送网络每个容器的接收网络每个容器的内存使用率/交换量每个容器的剩余内存(如果men_limit docker-compose.yml 中定义)服务器配置我使用 docker-compose 来设置我的监视:https://github.com/vegasbrianc/prometheus。我的仪表板使用此配置。服务运行:dockerprometheusnode-exporteralertmanagercadvisorgrafana v4使用 docker-compose.yml 安装 docker-compose.ymlprometheus:
image: prom/prometheus:latest
container_name: monitoring_prometheus
restart: unless-stopped
volumes:
- ./data/prometheus/config:/etc/prometh...
docker安装prometheus+grafana监控平台一,环境说明。 1,主机IP:192.168.1.20,docker环境,安装prometheus, node-exporter,alertmanager。 2,主机IP:192.168.1.41,docker环境,安装pushgateway,grafana,node-exporter。二,各个组件的安装。 1,192.168.1.20主机中先建好相关挂载目录。 prometheus挂载文件 : /opt/prometheus/config/prometheus.yml ---> /etc/prometheus/prometheus.yml /opt/prometheus/work ---> /prometheus 2,prometheus.yml文件的具体内容。# my global configglobal: scrape_interval: 15s evaluation_interval: 15s # scrape_timeout is set to the global default (10s).# Alertmanager configurationalerting: alertmanagers: - static_configs: - targets: - 192.168.1.20:9093rule_files: # - "first_rules.yml" # - "second_rules.yml" # - "/etc/prometheus/rules/*.rules"scrape_configs:&nb...
基于Kubernetes+GitLab+Jenkins+动态slave-自动化项目部署 科技在进步,技术在更新,革命就不停止。 一、部署流程 开发人员把做好的项目代码通过git推送到gitlab,然后Jenkins通过 gitlab webhook (前提是配置好),自动从拉取gitlab上面拉取代码下来, 然后进行build,编译、生成镜像、然后把镜像推送到Harbor仓库;然后在部署的时候通过k8s拉取Harbor上面的代码进行创建容器和服务, 最终发布完成,然后可以用外网访问。 部署流程如下: (大佬的图,大概这个过程) 环境准备: IP 角色 172.25.0.30 master1、Jenkins 172.25.0.31 node1、Gitlab ...
k8s 部署jenkins实现动态slave 一、创建namespacekubectl create namespace devops 二、创建PVC 我的k8s集群已经配置过nfs-storageclass了,所以下面只创建了pvc,pv是自动创建的apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins-pvc
namespace: devops
spec:
storageClassName: nfs-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi 三、创建ServiceAccount---
apiVersion: v1
kind: ServiceAccount
metadata:
name: jenkins
namespace: devops
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubernetes.io/bootstrapping: rbac-defaults
name: jenkins
namespace: devops
rules:
- apiGroups:
- ""
resources:
- pods
- pods/log
- pods/exec
verbs:
- create
- get
- watch
- delete
- list
- patch
- update
- apiGroups:
- ""
resources:...
如何使用Podman部署podPodman是CentOS 8和RHEL 8的新容器部署引擎。尽管它的目标与Docker引擎相同(部署和管理容器),但它的实现方式非常不同——至少在底层是这样。从用户的角度来看,它的工作方式与Docker非常相似。您可以使用与Docker引擎相同的方式来获取映像和部署容器。可以将pod看作是一种将相关容器分组在一起的方法,以便更容易地进行管理(例如,Wordpress容器及其所需的MySQL数据库容器是通过单个pod进行管理的)。由于Podman将每个容器部署为自己的流程,因此这是创建互连容器的一种非常有效和简单的方法。一、准备工作1、已安装Podman的CentOS 8系统服务器运行实例2、具有sudo特权的用户3、要了解如何在CentOS 8上安装Podman,请参阅:如何在CentOS 8上安装Podman容器引擎。二、如何创建一个新的pod首先要做的是创建一个新的容器。创建新容器的命令是:podman pod create当命令返回新容器的ID时,您将知道容器是否已成功创建。这将创建一个非常基本的pod。你可以使用一些选项创建一个pod,如:--cgroup-parent value-设置pod的父cgroup--infra-创建一个与容器关联的基础容器,以共享命名空间--infra-command value-启动pod时将在infra容器上运行的命令(例如“ / pa...
docker容器与外网互访流程讨论容器如何与外部世界通信。这里涉及两个方向: 容器访问外部世界 外部世界访问容器 容器访问外部世界 在我们当前的实验环境下,docker host 是可以访问外网的。[root@localhost ~]# ping -c 2 www.baidu.com
PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=128 time=12.2 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=128 time=15.1 ms 我们看一下容器是否也能访问外网呢?[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7b1aff354b3 busybox "sh" 3 seconds ago Up 3 seconds reverent_ganguly
[root@localhost ~]# docker exec -it f7b1aff354b3 ping www.baidu.com
PING www.baidu.com (180.101.49.11): 56 data bytes
6...
总共58页,当前第6页 | 页数: - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
最新评论