--以yaml格式输出:pod\configmap\service\ingress\deployment kubectl get pod platform-financeapi-deployment-6d9ff7dc8f-l774l -n alpha --output=yaml kubectl get configmap platform-website-config -n alpha --output=yaml kubectl get service platform-website -n a…
Configure Service Accounts for Pods A service account provides an identity for processes that run in a Pod. This is a user introduction to Service Accounts. See also the Cluster Admin Guide to Service Accounts. When you (a human) access the cluster (…
Configure a Pod to Use a PersistentVolume for Storage how to configure a Pod to use a PersistentVolumeClaim for storage. Here is a summary of the process: A cluster administrator creates a PersistentVolume that is backed by physical storage. The admi…
Assign Pods to Nodes how to assign a Kubernetes Pod to a particular node in a Kubernetes cluster. Add a label to a node #List the nodes in your cluster: kubectl get nodes #The output is similar to this: NAME STATUS AGE VERSION worker0 Ready 1d v1.6.0…
Share Process Namespace between Containers in a Pod how to configure process namespace sharing for a pod. When process namespace sharing is enabled, processes in a container are visible to all other containers in that pod. You can use this feature to…
1. Ratel是什么? Ratel是一个Kubernetes资源平台,基于管理Kubernetes的资源开发,可以管理Kubernetes的Deployment.DaemonSet.StatefulSet.Service.Ingress.Pods.Nodes.Role.ClusterRole.Rolebinding.ClusterRoleBinding.Secret.ConfigMap.PV.PVC等.主要用于以图形化的方式管理k8s的各类资源,提高维护k8s集群的效率及降低出错的概率. 2.…
一.概述 详情参考阿里云说明:https://help.aliyun.com/document_detail/98886.html?spm=a2c4g.11186623.6.1078.323b1c9bpVKOry 项目资源分配(数据库.中间件除外): 二.部署镜像仓库 1) 部署docker-compose,然后参考下文部署docker. $ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/dock…
1.基本配置 基本配置.内核升级.基本服务安装参考https://www.cnblogs.com/dukuan/p/10278637.html,或者参考<再也不踩坑的Kubernetes实战指南>第一章第一节 2.Kubernetes组件安装 所有节点安装Kubeadm.Kubectl.kubelet -.x86_64 kubectl--.x86_64 kubelet--.x86_64 所有节点启动Docker [root@k8s-master01 ~]# systemctl enable -…
1.基本说明 在生产环境使用k8s以后,大部分应用都实现了高可用,不仅降低了维护成本,也简化了很多应用的部署成本,但是同时也带来了诸多问题.比如开发可能需要查看自己的应用状态.连接信息.日志.执行命令等. 使用k8s后,业务应用以Pod为单位,不像之前的以服务器为单位,可以直接通过登录服务器进行相关操作.当业务应用使用k8s部署后,k8s官方的dashboard虽然可以进行查看日志.执行命令等基本操作,但是作为运维人员,不想让开发操作或查看自己范围之外的Pod,此时就要使用RBAC进行相关的权限…
1. 基本说明 本文章将演示CentOS 8二进制方式安装高可用k8s 1.17.x,相对于其他版本,二进制安装方式并无太大区别. 2. 基本环境配置 主机信息 192.168.1.19 k8s-master01 192.168.1.18 k8s-master02 192.168.1.20 k8s-master03 192.168.1.88 k8s-master-lb 192.168.1.21 k8s-node01 192.168.1.22 k8s-node02 系统环境 [root@k8s-m…
一.概述 Ingress 是对集群中服务的外部访问进行管理的 API 对象,可以提供负载均衡.SSL 终结和基于名称的虚拟托管. 典型的访问方式是 HTTP,用于将不同URL的访问请求转发到后端不同的 Service,以实现HTTP层的业务路由机制. Kubernetes使用了一个Ingress策略定义和一个具体的 Ingress Controller,两者结合并实现了一个完整的Ingress负载均衡器. 使用Ingress进行负载分发时,Ingress Controller基于Ingress规…
一.概述 首先Prometheus整体监控结构略微复杂,一个个部署并不简单.另外监控Kubernetes就需要访问内部数据,必定需要进行认证.鉴权.准入控制, 那么这一整套下来将变得难上加难,而且还需要花费一定的时间,如果你没有特别高的要求,我还是建议选用开源比较好的一些方案. 关于Prometheus具体介绍不再多说,可以参考另外一篇博文:Kubernetes实战总结 - Prometheus部署(v0.3.0) 本篇主要针对Kubernetes部署Prometheus相关配置介绍,本人采用的…
1. 基本说明 本文章将演示CentOS 8二进制方式安装高可用k8s 1.16.x,相对于其他版本,二进制安装方式并无太大区别.CentOS 8相对于CentOS 7操作更加方便,比如一些服务的关闭,无需修改配置文件即可永久生效,CentOS 8默认安装的内核版本是4.18,所以在安装k8s的过程中也无需在进行内核升级,系统环境也可按需升级,如果下载的是最新版的CentOS 8,系统升级也可省略. 2. 基本环境配置 主机信息 192.168.1.19 k8s-master01 192.168…
使用kind构建一个单层架构Node/Express网络应用程序 Kubernetes实战-从零开始搭建微服务 1 前言 准备写一个Kubernetes实战系列教程,毕竟cnblogs作为国内最早的技术博客现在都已经开始迁移到Kubernetes了,此处要有掌声给博客园.系列会更加偏向于实战,对于理论只在需要时讲解. Docker hub 上我个人觉着有两个做奇葩的镜像image dind, docker in docker kind, kubernetes in docker / k8s in…
1.5 提高可用性-发布多节点的Node/Express网络应用程序 Kubernetes实战 - 从零开始搭建微服务 前言 在上一篇文章中,已经学习了如何简单地开发一个单层网络应用.[Kubernetes实战 - 从零开始搭建微服务 1 - 使用kind构建一个单层架构Node/Express网络应用程序] ,本文将在上一篇基础上,添加额外节点,目的在于提高可用性(high availability). 关于可用性 high availability 在软件产品环境下,如何提高服务稳定性,进而…
系列目录 其实前面安装部分我们已经分享一些互联网上其它网友分享的一些坑,本篇介绍helm的基本使用以及在使用过程中碰到的一些坑. 客户端版本和服务端版本不一致问题 有些朋友可能在使用helm init的时候直接复制页面上的命令,这样由于客户端和服务端版本不一致造成helm无法使用,解决办法在复制helm init 阿里云网址时把网址里面的版本更新为和客户端保持一致的版本. 阿里云镜像过旧 你可能按照上一节的操作最终成功安装了helm,但是在实际工作中你可能会发现,阿里云的helm镜像仓库过旧(这…
  <再也不踩坑的Kubernetes实战指南>终于出版啦.目前可以在京东.天猫购买,京东自营和当当网预计一个星期左右上架. 本书贴合生产环境经验,解决在初次使用或者是构建集群中的痛点,帮你在探索Kubernetes集群的路途中,铺上一条水泥路~ 本书以实战经验为主线,介绍了如何在企业中快速构建自动化管理运维平台,打造公司一键式的CI/CD平台,本书内容基于企业常用概念编写,没有过多的废话,几乎全是干货,适用于99%的企业~ 本书目录分割.条理清晰,易于阅读,目录如下: 第1章 Kuberne…
1.Kubernetes带来的变革   对于开发人员 由于公司业务多,开发环境.测试环境.预生产环境和生产环境都是隔离的,而且除了生产环境,为了节省成本,其他环境可能是没有日志收集的,在没有用k8s的时候,查看线下测试的日志,需要开发或者测试人员,找到对应的机器,在找到对应的容器,然后才能查看日志,在用了k8s之后,开发和测试可以直接在k8s的dashboard到对应的namespace,即可定位到业务的容器,然后可以直接通过控制台查看到对应的日志,大大降低了操作时间. 把应用部署到k8s之后,…
说明:部署的过程中请保证每个命令都有在相应的节点执行,并且执行成功,此文档已经帮助几十人(仅包含和我取得联系的)快速部署k8s高可用集群,文档不足之处也已更改,在部署过程中遇到问题请先检查是否遗忘某个步骤,文档中每个步骤都是必须的. 经测验此文档也适合高可用部署k8s v.12,只需修改对应版本号就可. 1.部署架构 详细架构: 2.基本配置 主机名 IP地址 说明 组件 k8s-master01 ~ 03 192.168.20.20 ~ 22 master节点 * 3 keepalived.n…
系列目录 构建一个 Helm Chart 下面我们通过一个完整的示例来学习如何使用 Helm 创建.打包.分发.安装.升级及回退Kubernetes应用. 创建一个名为 mychart 的 Chart $ helm create mychart 该命令创建了一个 mychart 目录,该目录结构如下所示.这里我们主要关注目录中的 Chart.yaml.values.yaml.NOTES.txt 和 Templates 目录. [centos@k8s-master helm]$ tree mych…
系列目录 使用压缩包安装chart 我们使用helm package打包的时候,默认会在当前位置生成一个tgz压缩包,然后helm把它复制到到$HOME/.helm/repository目录下,现在还没有讲解helm私服搭建,使用的是helm自带的一个本地服务器,有时候这个服务器不能正常工作,但是我们又想体验功能,这时候可以使用本地chart压缩包来安装 我在当前目录下有以下文件 [centos@k8s-master helm]$ ls get_helm.sh mychart mychart-0…
介绍 pod P53 pod 是 Kubernetes 中最为重要的核心概念,而其他对象仅仅用于 pod 管理. pod 暴露或被 pod 使用. pod 是一组并置的容器,代表了 Kubernetes 中的基本构建模块. P53 当一个 pod 包含多个容器时,这些容器总是运行于同一个工作节点上--一个 pod 绝不会跨越多个工作节点. P54 为何需要 pod P54 为何多个容器比单个容器中包含多个进程要好 P54 假设一个由多个进程组成的应用程序,无论是通过 IPC (进程间通信)还是本…
保持 pod 健康 P84 只要 pod 调度到某个节点,该节点上的 Kubelet 就会运行 pod 的容器,从此只要该 pod 存在,就会保持运行.如果容器的主进程奔溃, Kubelet 就会自动重启容器:如果应用程序奔溃, Kubelet 就会自动重启应用程序. P84 应用程序也可能因为无限循环或死锁等情况而停止响应.为确保应用在这种情况下可以重新启动,必须从外部检查应用程序的运行状况,而不是依赖于应用的内部检测. P84 介绍存活探测器 P84 Kubernetes 可以通过存活探测器…
主要内容 1 ELK概念 2 K8S需要收集哪些日志 3 ELK Stack日志方案 4 容器中的日志怎么收集 5 K8S平台中应用日志收集 准备环境 一套正常运行的k8s集群,kubeadm安装部署或者二进制部署即可 ip地址 角色 备注 192.168.73.136 nfs 192.168.73.138 k8s-master 192.168.73.139 k8s-node01 192.168.73.140 k8s-node02 1 ELK 概念 ELK是Elasticsearch.Logst…
1.预备工作 unbuntu 16.04 or above docker for linux kubernetes for linux 集群环境 2.使用vs2017创建一个web api应用程序,并打包镜像到本地. 3.推送本地镜像到docker hub 4.编写k8s资源配置文件(yml) 备注:kubernetes使用的是“声明式模型”,即需要用户“描述”和“声明”其所希望实现的系统最终状态,kubernetes会努力帮你实现这个状态,模型的声明是通过编写yml文件来体现. hello-w…
一.Docker实战 Docker: 基础介绍 [一] Docker:Docker 性质及版本选择 [三] Docker:网络及数据卷设置 [四] Docker:手动制作镜像 [五] Docker:dockerfile自动构建镜像 [六] Docker:常用命令大全 [七] Docker:dockerfile构建php项目 [八] Docker:dockerfile镜像的分层 [九] Docker:容器间互联的应用zabbix监控项目 [十] Docker:私有仓库registry [十一] D…
1.基本概念 升级之后所有的containers会重启,因为hash值会变. 不可跨版本升级. 2.升级Master节点 当前版本 [root@k8s-master01 ~]# kubeadm version kubeadm version: &version.Info{Major:", GitVersion:"v1.11.1", GitCommit:"b1b29978270dc22fecc592ac55d903350454310a", GitTr…
1.traefik traefik:HTTP层路由,官网:http://traefik.cn/,文档:https://docs.traefik.io/user-guide/kubernetes/ 功能和nginx ingress类似. 相对于nginx ingress,traefix能够实时跟Kubernetes API 交互,感知后端 Service.Pod 变化,自动更新配置并热重载.Traefik 更快速更方便,同时支持更多的特性,使反向代理.负载均衡更直接更高效. k8s集群部署Trae…
创建资源对象 创建名为nginx-deploy的控制器资源对象 [root@master ~]# kubectl run nginx-deploy --image=nginx:1.12 --replicas=2 kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kube…
系列目录 前面我们讲解了如何搭建nexus服务器,以及如何使用nexus搭建docker私有镜像仓库,示例中我们都是手动docker login登陆私服,然后通过命令拉取镜像然后运行容器.然而这种做法在kubernetes集群中是不可行的.第一,项目规模不同,每天产生的镜像数量也不同,如果每天产生大量仓库都要手动执行docker pull来拉取,非常麻烦也非常容易出错.第二,集群规模不同,节点数量也不同,少则三五个,多则成百上千甚至更多.我们一台台拉取显然非常麻烦,即便使用ansible脚本批量…