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…
--以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 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…
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 (…
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.…
一.概述 首先Prometheus整体监控结构略微复杂,一个个部署并不简单.另外监控Kubernetes就需要访问内部数据,必定需要进行认证.鉴权.准入控制, 那么这一整套下来将变得难上加难,而且还需要花费一定的时间,如果你没有特别高的要求,我还是建议选用开源比较好的一些方案. 关于Prometheus具体介绍不再多说,可以参考另外一篇博文:Kubernetes实战总结 - Prometheus部署(v0.3.0) 本篇主要针对Kubernetes部署Prometheus相关配置介绍,本人采用的…
一.概述 详情参考阿里云说明: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. 创建集群 1.1. 安装 kubectl 1.1.1. 安装 kubectl 到 Linux 1.1.2. 安装 kubectl 到 macOS 1.1.3. 安装 kubectl 到 Windows 1.1.4. 添加命令自动补全支持 1.2. 安装 Minikube 1.2.1. 确保系统支持虚拟化技术 1.2.2. 安装 Hypervisor 1.2.3. 安装 Minikube 2. 启动集群 3. 启动 Dashboard 4. 部署一个应用 4.1. 查看所有节点及其状态…
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进行相关的权限…
使用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 在软件产品环境下,如何提高服务稳定性,进而…
介绍 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 可以通过存活探测器…
kubectl概述 祭出一张图,转载至 kubernetes-handbook/kubectl命令概述 ,可以对命令族有个整体的概念. 环境准备 允许master节点部署pod,使用命令如下: kubectl taint nodes --all node-role.kubernetes.io/master- kubectl安装后,默认是没有比如自动补全等功能的,频繁使用比较不方便.目前已经有各类kubectl小 工具 可以提高效率,还有kubectl专用的shell了.个人感觉比较好用有以下这些…
主要内容 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…
Pod是什么? 在前面创建部署时,Kubernetes创建了一个Pod来托管您的应用程序实例.Pod是一个Kubernetes抽象,表示一组一个或多个应用程序容器(如Docker或rkt),以及这些容器的一些共享资源.这些资源包括: 共享存储,作为卷 网络,作为唯一的群集IP地址 有关如何运行每个容器的信息,例如容器映像版本或要使用的特定端口 Pod为特定于应用程序的“逻辑主机”建模,并且可以包含相对紧密耦合的不同应用程序容器.例如,Pod可能既包含带有Node.js应用程序的容器,也包含一个不…
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…
1.准备工作 所有节点安装GFS客户端 yum install glusterfs glusterfs-fuse -y 如果不是所有节点要部署GFS管理服务,就在需要部署的节点上打上标签 [root@k8s-master01 ~]# kubectl label node k8s-node01 storagenode=glusterfs node/k8s-node01 labeled [root@k8s-master01 ~]# kubectl label node k8s-node02 stor…
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…
系列目录 其实前面安装部分我们已经分享一些互联网上其它网友分享的一些坑,本篇介绍helm的基本使用以及在使用过程中碰到的一些坑. 客户端版本和服务端版本不一致问题 有些朋友可能在使用helm init的时候直接复制页面上的命令,这样由于客户端和服务端版本不一致造成helm无法使用,解决办法在复制helm init 阿里云网址时把网址里面的版本更新为和客户端保持一致的版本. 阿里云镜像过旧 你可能按照上一节的操作最终成功安装了helm,但是在实际工作中你可能会发现,阿里云的helm镜像仓库过旧(这…
  <再也不踩坑的Kubernetes实战指南>终于出版啦.目前可以在京东.天猫购买,京东自营和当当网预计一个星期左右上架. 本书贴合生产环境经验,解决在初次使用或者是构建集群中的痛点,帮你在探索Kubernetes集群的路途中,铺上一条水泥路~ 本书以实战经验为主线,介绍了如何在企业中快速构建自动化管理运维平台,打造公司一键式的CI/CD平台,本书内容基于企业常用概念编写,没有过多的废话,几乎全是干货,适用于99%的企业~ 本书目录分割.条理清晰,易于阅读,目录如下: 第1章 Kuberne…
1.Kubernetes带来的变革   对于开发人员 由于公司业务多,开发环境.测试环境.预生产环境和生产环境都是隔离的,而且除了生产环境,为了节省成本,其他环境可能是没有日志收集的,在没有用k8s的时候,查看线下测试的日志,需要开发或者测试人员,找到对应的机器,在找到对应的容器,然后才能查看日志,在用了k8s之后,开发和测试可以直接在k8s的dashboard到对应的namespace,即可定位到业务的容器,然后可以直接通过控制台查看到对应的日志,大大降低了操作时间. 把应用部署到k8s之后,…
配置容器化应用的方式:①命令行参数:②环境变量:③文件化配置 一.向容器传递命令行参数或环境变量 这两种方式在 Pod 创建后不可被修改 1. 在Docker中定义命令与参数 ENTRYPOINT:容器启动时被调用的可执行程序 CMD:传递给 ENTRYPOINT 的默认参数.可被覆盖docker run <image> <arguments> 上面两条指令均支持以下两种形式 shell:ENTRYPOINT node app.js(/bin/sh -c node app.js)…
一.简介 有状态实例:新实例和旧实例需要有相同的名称.网络标识和状态 无状态实例:可随时被替换 1. ReplicaSet 和有状态 Pod ReplicaSet 通过 Pod 模板创建多个 Pod 副本,这些副本除了名字和 IP 地址不同,没有其他差异.若 Pod 模板指定了 PVC,则其创建的所有 Pod 共享相同的 PVC 和 PV 集群应用可能要求实例具有唯一的网络标识.可针对每个实例创建一个独立的 Service 来提供稳定的网络地址(因为服务 IP 固定).但 Pod 无法获取该 I…
简介 P2 Kubernetes 能自动调度.配置.监管和故障处理,使开发者可以自主部署应用,并且控制部署的频率,完全脱离运维团队的帮助. Kubernetes 同时能让运维团队监控整个系统,并且在硬件故障时重新调度应用. P2 Kubernetes 抽象了数据中心的硬件基础设施,使得对外暴露的只是一个巨大的资源池. 在部署多组件应用时, Kubernetes 会为每个组件都选择一个合适的服务器,部署之后它能够保证每个组件可以轻易地发现其他组件,并彼此之间实现通信. P2 Kubernetes…
一.更新运行在 Pod 内的应用程序 1. 修改 Pod 模板 将导致应用程序在一定时间内不可用 2. 修改 Service 的 Pod 选择器 需要同时运行两倍的 Pod 3. 滚动升级 应用程序需支持两个版本同时对外提供服务 旧版本 ReplicationController 缩容,同时新版本扩容 通过新旧 ReplicationController 副本数的改变,逐渐将所有 Pod 替换成新版本,结束后删除原有的 ReplicationController 二.使用 Deployment…
手动调度一个 pod // cat manual-schedule.yaml apiVersion: v1 kind: Pod metadata: labels: run: pod-manual-schedule name: pod-manual-schedule namespace: default spec: nodeName: "app.centos7.com" containers: - name: my-pod image: nginx:alpine 执行以下命令即可验证.…
Kubernetes如何使用ReplicationController.Replica Set.Deployment管理Pod https://blog.csdn.net/yjk13703623757/article/details/53746273   Pod直译是豆荚,我们可以把容器想像成豆荚里的豆子,把一个或多个关系紧密的豆子包在一起就是豆荚(一个Pod).在k8s中我们不会直接操作容器,而是把容器包装成Pod,而对于Pod,我们该如何管理?先看下面这个场景: 1. 应用场景 假设有一个P…