目录

尝试 minikube

minikube 在 macOS、Linux 和 Windows 上快速设置本地 Kubernetes 集群。

Highlights:

  • 支持最新的 Kubernetes release 版本
  • 跨平台(Linux、macOS、Windows)
  • 作为 VM、容器或裸机部署
  • 多个容器运行时(CRI-O、containerd、docker)
  • 用于超快图像加载和构建的直接 API 端点
  • 高级功能,例如LoadBalancer、文件系统挂载、FeatureGates 和网络策略
  • 用于轻松安装 Kubernetes 应用程序的插件
  • 支持常见的 CI 环境
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# https://itnext.io/goodbye-docker-desktop-hello-minikube-3649f2a1c469
brew install podman
# https://docs.podman.io/en/latest/markdown/podman-machine-init.1.html
podman machine init --cpus 4 --memory 6144 --disk-size 50 --image-path next
podman machine start
podman system connection default podman-machine-default-root
podman system connection list
minikube start --driver=podman --container-runtime=cri-o


brew install hyperkit
hyperkit -v
brew install docker
brew install kubectl
kubectl version --client

brew install minikube
minikube config set cpus 4
minikube config set memory 6g
minikube start --driver=hyperkit --container-runtime=docker

minikube kubectl -- --help
minikube kubectl -- get pods --namespace kube-system
alias kubectl="minikube kubectl --"
1
2
minikube dashboard
minikube dashboard --url

ingress

https://minikube.sigs.k8s.io/docs/handbook/addons/ingress-dns/

1
2
3
4
minikube addons enable ingress
minikube addons enable ingress-dns
minikube ip
vim /etc/resolver/minikube-test
domain test
nameserver 192.168.99.169
search_order 1
timeout 5

Replace 192.168.99.169 with your minikube ip.

词汇表

  • DaemonSet 确保 Pod 的副本在集群中的一组节点上运行。
  • Deployment 是管理应用副本的 API 对象,通常通过运行没有本地状态的Pods来实现。
  • Job 是需要运行完成的确定性的或批量的任务。
  • kube-apiserver API 服务器是 Kubernetes 控制面的组件, 该组件公开了 Kubernetes API。 API 服务器是 Kubernetes 控制面的前端。
  • kube-controller-manager 运行控制器进程的控制平面组件。
  • kube-proxy 是集群中每个节点上运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。
  • kubectl 是使用 Kubernetes API 与 Kubernetes 集群的控制面进行通信的命令行工具。
  • Kubelet 一个在集群中每个节点(node)上运行的代理。 它保证容器(containers)都 运行在 Pod 中。
  • Kubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。
  • Master遗留术语,作为运行 控制平面 的 节点 的同义词使用。
  • Minikube 是用来在本地运行 Kubernetes 的一种工具。
  • Pod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器(containers)。
  • Pod 安全策略为 Pod 的创建和更新操作启用细粒度的授权。
  • Pod 生命周期关于 Pod 在其生命周期中处于哪个阶段的更高层次概述。
  • ReplicaSet 是下一代副本控制器。
  • StatefulSet 用来管理某 Pod 集合的部署和扩缩, 并为这些 Pod 提供持久存储和持久标识符。
  • 亲和性(Affinity)在 Kubernetes 中,_亲和性(affinity)_是一组规则,它们为调度程序提供在何处放置 Pods 提示信息。
  • 卷(Volume)包含可被 Pod 中容器访问的数据的目录。 每个 Kubernetes 卷在所处的 Pod 存在期间保持存在状态。 因此,卷的生命期会超出 Pod 中运行的容器, 并且保证容器重启之后仍保留数据。
  • 名字空间(Namespace)是 Kubernetes 用来支持隔离单个 集群中的资源组的一种抽象。
  • 基于角色的访问控制(RBAC)管理授权决策,允许管理员通过 Kubernetes API 动态配置访问策略。
  • 容器环境变量(Container Environment Variables)提供了 name=value 形式的、在 pod 中运行的容器所必须的一些重要信息。
  • 容器运行时接口(CRI 是一组与节点上 kubelet 集成的容器运行时 API
  • 容器运行时(Container Runtime)容器运行环境是负责运行容器的软件。
  • 容器(Container)是可移植、可执行的轻量级的镜像,包含其中的软件及其相关依赖。
  • 容忍度(Toleration)一个核心对象,由三个必需的属性组成:key、value 和 effect。 容忍度允许将 Pod 调度到具有对应污点 的节点或节点组上。
  • 对象(Object)Kubernetes 系统中的实体。Kubernetes API 用这些实体表示集群的状态。
  • 工作负载(Workload)工作负载是在 Kubernetes 上运行的应用程序。
  • 控制器(Controller)在 Kubernetes 中,控制器通过监控集群 的公共状态,并致力于将当前状态转变为期望的状态。
  • 控制平面(Control Plane)控制平面(Control Plane)是指容器编排层,它暴露 API 和接口来定义、 部署容器和管理容器的生命周期。
  • 控制组(cgroup)一组具有可选资源隔离、审计和限制的 Linux 进程。
  • 数据平面(Data Plane)提供诸如 CPU,内存,网络和存储的能力,以便容器可以运行并连接到网络。
  • 日志(Logging)日志是 集群(cluster) 或应用程序记录的事件列表。
  • 服务(Service)将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。
  • 标签(Label)用来为对象设置可标识的属性标记;这些标记对用户而言是有意义且重要的。
  • 污点(Taint)污点是一种一个核心对象,包含三个必需的属性:key、value 和 effect。 污点会阻止在节点 或节点组上调度 Pods。
  • 注解(Annotation)是以键值对的形式给资源对象附加随机的无法标识的元数据。
  • 混排切片(Shuffle Sharding)混排切片(Shuffle Sharding)是指一种将请求指派给队列的技术,其隔离性好过对队列个数哈希取模的方式。
  • 清单(Manifest)JSON 或 YAML 格式的 Kubernetes API 对象规范。
  • 节点(Node)Kubernetes 中的工作机器称作节点。
  • 设备插件(Device Plugin)设备插件工作在节点主机上,给 Pods 提供访问资源的权限,比如特定厂商初始化或者安装的本地硬件。
  • 资源配额(Resource Quotas)资源配额提供了限制每个 命名空间 的资源消耗总和的约束。
  • 选择算符(Selector)选择算符允许用户通过标签(labels)对一组资源对象进行筛选过滤。
  • 镜像(Image)镜像是保存的容器实例,它打包了应用运行所需的一组软件。
  • 集群(Cluster)集群由一组被称作节点的机器组成。这些节点上运行 Kubernetes 所管理的容器化应用。集群具有至少一个工作节点。
  • 静态 Pod(Static Pod)由特定节点上的 kubelet 守护进程直接管理的 pod

附录