青蛙小白

#Kubernetes

← 全部文章

Kubernetes Nginx Ingress Controller从0.x到1.x升级指南

最近把一套K8S集群的Nginx Ingress Controller从v0.33升级到了v1.0.5,属于主版本升级,在这里整理一下升级的过程和遇到的问题。 这套k8s集群的信息如下: k8s版本为v1.21.5 使用Ingress将集群外部http流量接入到集群内部,当前集群中共有三十多个Ingress资源 ingress controller使用的是https://github.com/kubernetes/ingress-nginx/,版本是v0.33,基于yaml文件格式的Manifest部署 升级前的准备工作 修改集群中的Ingress资源使其与1.x版本的Nginx Ingress Controller以及后续版本的k8s(>=1.22)兼容,修改主要涉及两个方面:

离线部署轻量级Kubernetes发行版K3s

K3s简介 K3s是一个轻量级的Kubernetes发行版,它针对边缘计算、物联网等场景进行了高度优化。 K3s做了以下功能: 将众多k8s组件打包成单个二进制文件,以简化部署,通过封装在简单的启动程序自动处理很多复杂的TLS配置,使K3s具有自动化和管理包括证书分发在内的复杂集群操作的能力 默认使用轻量级别的存储后端sqlite3,同时又支持使用etcd3, MySQL, PostgreSQL作为存储后端 默认提供的配置适用于轻量级场景且默认的配置是安全的 默认安装集成了很多实用功能和组件,如local-path-provisioner, metrics-server, traefik ingress controller 运行K3s所需的资源相对较少,因此K3s适用于边缘计算、物联网等场景,当然也适用于开发和测试场景,使用K3s不仅能够缩短启动集群的时间,还能够减少集群需要消耗的资源。

重学k8s: 06.Kubernetes资源对象之Namespace

前面一节介绍了使用Kubernetes API就是查询和操纵Kubernetes API中的资源对象。本节将学习第一个资源对象Namespace。 很多公司可能都会维护一个规模很大的K8S集群,可能有几百乃至成千上万台机器,这个K8S集群同时要为公司内部的不同部门、不同的业务提供服务,为了隔离区分各部门各业务对集群的使用,需要有一个"虚拟集群"的概念,即namespace。 k8s支持多个虚拟集群,它们依赖于同一个物理集群,这些虚拟集群就是namespace。

重学k8s: 03.Kubernetes集群的几种部署方式及如何选择

通过上节内容,学习了Kubernetes自己就是一个大型的分布式系统,Kubernetes集群的包含众多组件。集群中的服务器节点分为control-plane节点和node节点. control-plane节点上需要部署kube-apiserver、kube-controller-manager、kube-scheduler组件。 node节点上需要部署kubelet、kube-proxy组件,另外还需要在node节点上部署实现了CRI的容器运行时(如: Containerd, CRI-O)。 还需要部署一套etcd集群作为k8s集群的存储数据库,kube-apiserver使用etcd存储整个集群的状态。 最后还需要在k8s集群中部署一些扩展组件(Addons)包含: 网络和网络策略插件(如Calico)、服务发现插件(如CoreDNS)、可视化管理插件(如Kubernetes Dashboard),才能让整个k8s集群的功能对外可用。