
k8s
zhangge3663
这个作者很懒,什么都没留下…
展开
-
K8S故障排除方法
1.查看pods哪些是有问题的,Running正常,其他异常:/opt/kubernetes/bin/kubectl get pods --all-namespaces -owideNAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODEdefault nginx-dbddb74b8-d78cd 1/1 Running 0 17m 172.17.90.3 192.168.18.148 <none>2.查看异常po转载 2020-10-09 09:33:03 · 1211 阅读 · 0 评论 -
Kubernetes的Device Plugin机制源码解析
简介:Kubernetes 1.8 引入的Device Plugin机制,通过扩展的方式实现支持GPU、FPGA、高性能 NIC、InfiniBand等各种设备的集成。而Device Manager正是Kubelet内负责Device Plugin交互和设备生命周期管理的模块,在了解其基本设计后,本文对Device Manager的源码分析,理解其运作方式。Kubernetes 1.8 引入的Device Plugin机制,通过扩展的方式实现支持GPU、FPGA、高性能 NIC、InfiniBand等.转载 2020-08-29 12:14:58 · 800 阅读 · 0 评论 -
生产中的12种容器镜像扫描最佳实践
现在很多团队面临着这么一个挑战:如何在不减慢应用交付速度的情况下,管理好安全风险。有种方法可以解决该问题,就是采用安全的 DevOps 工作流程。安全的DevOps(也称为DevSecOps)会在从开发到生产的整个应用程序声明周期中提供安全性以及监控功能,帮助我们交付安全、稳定和高性能的应用程序。如果我们把该工作流程插入现有的工具链中,可以为DevOps、开发人员和安全团队最大程度地提高效率。DevSecOps五个基本工作流程包括镜像扫描、运行安全、合规性、Kubernetes和容器的监控以及应转载 2020-08-10 12:14:12 · 1423 阅读 · 0 评论 -
Dockerfile镜像优化方案指引
前言镜像的优化注意几条:选择最精简的基础镜像 减少镜像的层数 清理镜像构建的中间产物 注意优化网络请求 尽量去用构建缓存 使用多阶段构建镜像接下来,我们以rhel7镜像 构建容器,并在容器中安装nginx的源码包。以此容器构建新的镜像并做优化1.软件准备[root@server1 docker]# pwd/tmp/docker[root@server1 docker]# lsnginx-1.15.9.tar.gz rhel7.tar2.导入rhel7镜像[r转载 2020-08-10 11:08:59 · 265 阅读 · 0 评论 -
kubernetes目录挂载
Docker本身有自己的目录挂载,但功能太单一,一般也只能挂载本地目录,K8S作为Docker容器的管理服务,除了能够挂载本地的还能在线文件存储目录,比如说nfs1. 本地目录挂载yml文件中配置如下apiVersion: extensions/v1beta1kind: Deploymentmetadata: name: goserverspec: replicas: 2 template: metadata: labels: run: g转载 2020-08-06 14:44:38 · 5122 阅读 · 0 评论 -
Kubernetes init container
目录简介 配置 init container与应用容器的区别简介在很多应用场景中,应用在启动之前都需要进行如下初始化操作:等待其他关联组件正确运行(例如数据库或某个后台服务) 基于环境变量或配置模板生成配置文件 从远程数据库获取本地所需配置,或者将自身注册到某个中央数据库中 下载相关依赖包,或者对系统进行一些预配置操作kubernetes v1.3引入了一些alpha版本的新特性init container(在v1.5版本时被更新为beta版本),用于在启动应用容器之前 启动.转载 2020-08-06 14:21:00 · 230 阅读 · 0 评论 -
Kubernetes的yaml文件中的command使用
前面说了init容器initContainers,这主要是为容器做前期准备工作的,一般都会用到shell脚本,这就会用到command,这里写command的用法。command就是将命令在创建的容器中执行,有这些命令去完成一些工作,command用法和dockerfile中的cmd差不多,command可以单独写,也可以分成command和参数args,可以参考之前的CMD去理解,例如下面的写法都可以。ommand: ['/bin/sh']command: ["rm", "-fr", .转载 2020-08-06 14:17:08 · 3138 阅读 · 0 评论 -
Kubernetes之yaml文件详解(汇总-详细)
一、YAML基础YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。YAML语法规则:大小写敏感使用缩进表示层级关系缩进时不允许使用Tal键,只允许使用空格缩进的空格数目不重要,只要相同层级的元素左侧对齐即可"#" 表示注释,从这个字符一直到行尾,都会被解析器忽略在Kubernetes中,只需要知道两种结构类型即可:ListsMaps1.1 YAML MapsMap顾名思义指的是字典,即一个Key:Value转载 2020-08-04 15:38:21 · 1537 阅读 · 0 评论 -
Kubernetes NodePort vs Loadbalancer vs Ingress 在生成中如何选择?
最近,有人问我NodePort,LoadBalancers和Ingress之间有什么区别。它们都是将外部流量带入群集的不同方法,并且它们都以不同的方式进行。简单的说,生产环境建议使用Loadbalancer和Ingress,四层(TCP/UDP)代理使用Loadbalancer,七层(HTTP/HTTPS)代理使用Ingress。让我们看一下它们各自的工作方式以及何时使用它们。ClusterIPClusterIP是默认的Kubernetes服务类型。它为你提供了群集内部的服务访问方式..转载 2020-08-03 15:36:28 · 589 阅读 · 0 评论 -
使用Golang自定义Kubernetes Ingress Controller
在Kubernetes中通过Ingress来暴露服务到集群外部,这个已经是很普遍的方式了,而真正扮演请求转发的角色是背后的Ingress Controller,比如我们经常使用的traefik、ingress-nginx等就是一个Ingress Controller。本文我们将通过golang来实现一个简单的自定义的Ingress Controller,可以加深我们对Ingress的理解。概述我们在 Kubernetes 集群上往往会运行很多无状态的 Web 应用,一般来说这些应用是通过一个Depl转载 2020-08-03 15:03:02 · 836 阅读 · 1 评论 -
入门级实操教程!从概念到部署,全方位了解K8S Ingress!
Kubernetes Ingress用于添加规则,以将流量从外部路由到Kubernetes集群的服务中。在本文中你将了解ingress 的概念,以及用于路由外部流量到Kubernetes deployment的ingress controller。通常情况下,自定义Nginx或HAproxy Kubernetes部署将作为服务被暴露,它们用于将外部流量代理到内部集群的服务中。其中,路由规则将会bake到Pod中,并作为configmap添加。Kubernetes ingress的行为与此类似,只是路由规转载 2020-07-26 10:15:06 · 158 阅读 · 0 评论 -
kubernetes学习笔记之七:Ingress-nginx部署使用
一、Ingress简介在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的,为了使外部的应用能够访问集群的服务,在Kubernetes目前提供了以下几种方案:NodePortLoadBalancerIngressIngress组成ingress controller 将新加入的Ingress转化成Nginx的配置文件并使之生效ingress服务 将Nginx的配置抽象成一个Ingress对象,每添加一个新的...转载 2020-07-25 18:33:45 · 1771 阅读 · 0 评论 -
Kubernetes Nginx Ingress教程
最近发现好多人问Ingress,同时一直也没去用Nginx的Ingress,索性捣鼓一把,发现跟原来确实有了点变化,在这里写篇文章记录一下一、Ingress介绍Kubernetes暴露服务的方式目前只有三种:LoadBalancer Service、NodePort Service、Ingress;前两种估计都应该很熟悉,具体的可以参考下这篇文章;下面想写介绍一下这个Ingress。1.1 Ingress是个什么玩意可能从大致印象上Ingress就是能利用Nginx、Haproxy啥的..转载 2020-07-24 17:02:13 · 1536 阅读 · 0 评论 -
ubuntu18.04搭建 kubernetes(k8s)集群
♦♦♦这里介绍使用kubeadm安装k8s集群,因为这种搭建方式需要访问grc.io(https://cloud.google.com/container-registry/)(国内被墙了)下载对应的image,所以需要确保自己能访问该网站♦♦♦♦♦♦即使网络不能访问,也有折中的解决办法,具体请看详细安装步骤♦♦♦安装前准备:关闭iptables/ufw: service ufw disable 关闭swap: swapoff -a Centos还需要关闭SELinux/firewal...转载 2020-07-13 21:17:17 · 1096 阅读 · 0 评论 -
【k8s学习笔记】第二篇:在Ubuntu系统中安装kubelet,kubeadm和kubectl
在这一篇中,我们在Ubuntu系统中通过命令行的方式安装kubelet,kubeadm和kubectl。kubelet:运行在Cluster 的所有节点上面,负责Pod和容器的启动和维护;kubeadm:用于初始化Cluster;kubectl:命令行工具。通过 kubectl可以部署和管理应用,查看资源,维护组件。下面开始安装:1、切换为root用户:su -2、运行命令:apt-get update && apt-get install docker.io来安装do转载 2020-07-13 21:12:22 · 490 阅读 · 0 评论