Kubernetes

kubectl 命令

痴心易碎 提交于 2021-02-13 09:49:05
https://jimmysong.io/kubernetes-handbook/guide/using-kubectl.html 零、Options 选项 https://www.kubernetes.org.cn/doc-45 功能: 使用kubectl来管理Kubernetes集群。 可以在 https://github.com/kubernetes/kubernetes 找到更多的信息。 选项: --kubeconfig="": 命令行请求使用的配置文件路径。 --api-version="": 和服务端交互使用的API版本。 --certificate-authority="": 用以进行认证授权的.cert文件路径。 --client-certificate="": TLS使用的客户端证书路径。 --client-key="": TLS使用的客户端密钥路径。 --cluster="": 指定使用的kubeconfig配置文件中的集群名。 --context="": 指定使用的kubeconfig配置文件中的环境名。 --user="": 指定使用的kubeconfig配置文件中的用户名。 --insecure-skip-tls-verify[=false]: 如果为true,将不会检查服务器凭证的有效性,这会导致你的HTTPS链接变得不安全。 --match

云原生|消息中间件的演进路线

三世轮回 提交于 2021-02-13 09:39:22
Photo @ Julien Riedel 文 | 尘央 引言 本文以一张云进化历史图开场,来谈谈云原生时代消息中间件的演进路线,但本文绝对不是“开局一张图,内容全靠编”。 从虚拟化技术诞生以来,IaaS/PaaS/SaaS 概念陆续被提了出来,各种容器技术层出不穷。到 2015 年, Cloud Native 概念应运而生,一时间,各种云厂商,云服务以及云应用都加上了“云原生”前缀。 我们也一直在思考,传统的消息中间件需要做些什么才能加上云原生这个修饰词,这也是本文探讨的主题:传统的消息中间件如何持续进化为云原生的消息服务。 云原生消息服务 什么是云原生 首先来谈谈什么是云原生,云原生是一个天然适用于云计算的架构理念,实践云原生技术理念的应用可以最大化享受云计算的技术红利,包括弹性伸缩、按量付费、无厂商绑定、高 SLA 等。 应用在实践云原生技术理念时一般会遵循四个要素: 采取 DevOps 领域的最佳实践来管理研发和运维流程。 通过 CICD 工具链做到应用的快速迭代和持续交付。 采取微服务架构。 采取容器及相关技术进行应用的托管。 消息服务作为应用的通信基础设施,是微服务架构应用的核心依赖,也是实践云原生的核心设计理念的关键技术,通过消息服务能够让用户很容易架构出分布式的、高性能的、弹性的、鲁棒的应用程序。消息服务在云原生的重要性也导致其极可能成为应用实践云原生的阻塞点

实战笔记 | 在k3s集群、kubernetes集群安装部署ingress-nginx

天涯浪子 提交于 2021-02-13 07:45:54
先看效果 kubectl apply -f deploy.yaml 执行上面的命令后,通过netstat -nltp 确认本机80、443是nginx进程在监听 apiVersion : v1 kind : Namespace metadata : name : ingress-nginx labels : app.kubernetes.io/name : ingress-nginx app.kubernetes.io/instance : ingress-nginx --- # Source: ingress-nginx/templates/controller-serviceaccount.yaml apiVersion : v1 kind : ServiceAccount metadata : labels : helm.sh/chart : ingress-nginx-2.0.3 app.kubernetes.io/name : ingress-nginx app.kubernetes.io/instance : ingress-nginx app.kubernetes.io/version : 0.32.0 app.kubernetes.io/managed-by : Helm app.kubernetes.io/component : controller name :

Kubernetes 入门到进阶实战,系统性掌握 K8s 生产实践

北慕城南 提交于 2021-02-13 04:18:13
Kubernetes 入门到进阶实战,系统性掌握 K8s 生产实践 最近项目用到kubernetes(以下简称k8s,k和s之间有8个字母),虽然之前也有简单使用过,但认识也不是很全面。也看到很多老铁对Kubernetes和Docker之间的关系搞不清楚,所以我收集整理了两者之间的相关说明,供大家参考学习。 简要介绍: 官方定义1:Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化。 官方定义2:k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。 与传统技术对比: 接下来我们看两张经典的图: 一、从虚拟化角度: Docker容器与传统虚拟化方式的不同之处,传统的虚拟技术,在将物理硬件虚拟成多套硬件后,需要再每套硬件上都部署一个操作系统,接着在这些操作系统上运行相应的应用程序。而Docker容器内的应用程序进程直接运行在宿主机(真实物理机)的内核上,Docker引擎将一些各自独立的应用程序和它们各自的依赖打包,相互独立直接运行于未经虚拟化的宿主机硬件上,同时各个容器也没有自己的内核,显然比传统虚拟机更轻便。 每个集群有多个节点,每个节点可创建多个容器,kuberbete就是管理这些应用程序所在的小运行环境(container)而生。 作者-\/:

云原生|消息中间件的演进路线

北城以北 提交于 2021-02-13 01:57:53
Photo @ Julien Riedel 文 | 尘央 引言 本文以一张云进化历史图开场,来谈谈云原生时代消息中间件的演进路线,但本文绝对不是“开局一张图,内容全靠编”。 从虚拟化技术诞生以来,IaaS/PaaS/SaaS 概念陆续被提了出来,各种容器技术层出不穷。到 2015 年, Cloud Native 概念应运而生,一时间,各种云厂商,云服务以及云应用都加上了“云原生”前缀。 我们也一直在思考,传统的消息中间件需要做些什么才能加上云原生这个修饰词,这也是本文探讨的主题:传统的消息中间件如何持续进化为云原生的消息服务。 云原生消息服务 什么是云原生 首先来谈谈什么是云原生,云原生是一个天然适用于云计算的架构理念,实践云原生技术理念的应用可以最大化享受云计算的技术红利,包括弹性伸缩、按量付费、无厂商绑定、高 SLA 等。 应用在实践云原生技术理念时一般会遵循四个要素: 采取 DevOps 领域的最佳实践来管理研发和运维流程。 通过 CICD 工具链做到应用的快速迭代和持续交付。 采取微服务架构。 采取容器及相关技术进行应用的托管。 消息服务作为应用的通信基础设施,是微服务架构应用的核心依赖,也是实践云原生的核心设计理念的关键技术,通过消息服务能够让用户很容易架构出分布式的、高性能的、弹性的、鲁棒的应用程序。消息服务在云原生的重要性也导致其极可能成为应用实践云原生的阻塞点

云原生时代消息中间件的演进路线

笑着哭i 提交于 2021-02-13 01:45:53
简介: 本文整理自作者于 2020 年云原生微服务大会上的分享《云原生时代的消息中间件演进》,主要探讨了传统的消息中间件如何持续进化为云原生的消息服务。 作者 | 周礼(不铭) 阿里巴巴集团消息中间件架构师 导读 :本文整理自作者于 2020 年云原生微服务大会上的分享《云原生时代的消息中间件演进》,主要探讨了传统的消息中间件如何持续进化为云原生的消息服务。 引言 本文以一张云进化历史图开场,来谈谈云原生时代消息中间件的演进路线,但本文绝对不是“开局一张图,内容全靠编”。 从虚拟化技术诞生以来,IaaS / PaaS / SaaS 概念陆续被提了出来,各种容器技术层出不穷。到 2015 年,Cloud Native 概念应运而生,一时间,各种云厂商,云服务以及云应用都加上了“云原生”前缀。 我们也一直在思考,传统的消息中间件需要做些什么才能加上云原生这个修饰词,这也是本文探讨的主题:传统的消息中间件如何持续进化为云原生的消息服务。 云原生消息服务 1. 什么是云原生 首先来谈谈什么是云原生,云原生是一个天然适用于云计算的架构理念,实践云原生技术理念的应用可以最大化享受云计算的技术红利,包括弹性伸缩、按量付费、无厂商绑定、高 SLA 等。 应用在实践云原生技术理念时一般会遵循四个要素: 采取 DevOps 领域的最佳实践来管理研发和运维流程; 通过 CICD

Kubernetes Pod应用的滚动更新(八)

爷,独闯天下 提交于 2021-02-13 01:41:05
一、环境准备 我们紧接上一节的环境,进行下面的操作,如果不清楚的,可以先查看上一篇博文。 滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。 二、更新 我们查看一下上一节的配置文件 mytest-deploy.yaml 。 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: mytest spec: replicas: 3 template: metadata: labels: run: mytest spec: containers: - name: mytest image: wangzan18/mytest:v1 ports: - containerPort: 80 我们看到设定的镜像版本为v1,我们查看一下创建的 ReplicaSet 。 [root@master ~]# kubectl get rs -o wide NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR mytest-88d46bf99 3 3 3 68m mytest wangzan18/mytest:v1 pod-template-hash

Kubernetes之(八)Pod的生命周期

随声附和 提交于 2021-02-13 00:35:19
[toc] Kubernetes之(八)Pod的生命周期 理解Pod Pod是kubernetes中你可以创建和部署的最⼩也是最简的单位。 ⼀个Pod代表着集群中运⾏的⼀个进程。 Pod中封装着应⽤的容器(有的情况下是好⼏个容器) , 存储、 独⽴的⽹络IP, 管理容器如何运⾏的策略选项。 Pod代 表着部署的⼀个单位: kubernetes中应⽤的⼀个实例, 可能由⼀个或者多个容器组合在⼀起共享资源。 在Kubrenetes集群中Pod有如下两种使⽤⽅式: ⼀个Pod中运⾏⼀个容器。 “每个Pod中⼀个容器”的模式是最常⻅的⽤法; 在这种使⽤⽅式中, 你可以把Pod想象成是单个容器的封装, kuberentes管理的是Pod⽽不是直接管理容器。 在⼀个Pod中同时运⾏多个容器。 ⼀个Pod中也可以同时封装⼏个需要紧密耦合互相协作的容器, 它们之间共享资源。 这些在同⼀个Pod中的容器可以互相协作成为⼀个service单位——⼀个容器共享⽂件, 另⼀个“sidecar”容器来更新这些⽂件。 Pod将这些容器的存储资源作为⼀个实体来管理。 每个Pod都是应⽤的⼀个实例。 如果你想平⾏扩展应⽤的话(运⾏多个实例) , 你应该运⾏多个Pod, 每个Pod都是⼀个应⽤实例。 在Kubernetes中, 这通常被称为replication。 Pod内如何管理多个容器

Kubernetes Pod 生命周期

白昼怎懂夜的黑 提交于 2021-02-12 22:37:51
Pod 生命周期 Pod 的 status 定义在 PodStatus 对象中,其中有一个 phase 字段。它简单描述了 Pod 在其生命周期的阶段。熟悉Pod的各种状态对我们理解如何设置Pod的调度策略、重启策略是很有必要的。 下面是 phase 可能的值: 阶段 描述 Pending Pod 已被 Kubernetes 系统接受,但有一个或者多个容器镜像尚未创建。等待时间包括调度 Pod 的时间和通过网络下载镜像的时间,这可能需要花点时间。 Running 该 Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建。至少有一个容器正在运行,或者正处于启动或重启状态。 Succeeded Pod 中的所有容器都被成功终止,并且不会再重启。 Failed Pod 中的所有容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止。 Unknown 因为某些原因无法取得 Pod 的状态,通常是因为与 Pod 所在主机通信失败。 Pod 状态 Pod 有一个 PodStatus 对象,其中包含一个 PodCondition 数组,代表 Condition 是否通过。 PodCondition 属性描述: 字段 描述 lastProbeTime 最后一次探测 Pod Condition 的时间戳。 lastTransitionTime 上次

kubeadm安装kubernets集群

佐手、 提交于 2021-02-12 13:04:17
双12弄了两台腾讯云和百度云机器,组建k8s集群时需要服务器间组成内网环境; 在服务器组成内网后就可以安装kubernets集群了 因只是自己实验需要,所以服务器使用openxxx跨云组建的内网,各位在安装的时候建议还是使用同一内网环境,并使用2v4G以上服务器推介配置 大家的系统环境及各种安装包尽量使用同一个版本 备注:因为我的内网环境和普通的略有不通,所以初始化集群的时候及安装网络插件的时候,需要额外的操作,强烈建议大家即使是实验也请组成二层的内网网络环境来搭建K8S, 1,服务器环境: 软件版本 Kubernetes v1.17.0 Docker version 19.03.5   master:     腾讯云1V2g,CentOS Linux release 7.5.1804 (Core)     公网IP:x.x.x.x     内网IP:172.16.10.9     局域网IP:100.100.100.1     hostname:shiji.com   node1:     百度云1v2g,CentOS Linux release 7.6.1810 (Core)         公网IP:x.x.x.x     内网IP:172.16.0.4     局域网IP:100.100.100.3     hostname:node1 2