栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【愚公系列】2022年04月 Kubernetes容器集群快速部署之kind多节点集群

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【愚公系列】2022年04月 Kubernetes容器集群快速部署之kind多节点集群

文章目录
  • 前言
  • 一、kind配置多节点集群
    • 1.集群配置的使用
    • 2.单控制面集群
    • 3.单控制面特定版本集群
    • 4.将端口映射到主机
    • 5.创建一个包含 Ingress 的集群
      • 5.1 配置文件
      • 5.2 创建集群
      • 5.3 部署Ingress
      • 5.4 访问Ingress
    • 6.特性门控
    • 7.运行nginx


前言

集群是 Kubernetes 的核心优势:能够在内部或云端跨一组机器(无论是物理机还是虚拟机)调度和运行容器。Kubernetes 容器不受单个计算机的限制。相反,它们是跨整个集群进行抽象。

集群至少包含一个控制平面,以及一个或多个计算机器或节点。控制平面负责维护集群的预期状态,例如运行哪个应用以及使用哪个容器镜像。节点则负责应用和工作负载的实际运行。

单节点集群就是一个控制平面,其余节点由这个控制面负责。相当于一个领导人负责多个员工,相比于docker只要保证主节点正常还是可以实现高并发高可用的。

一、kind配置多节点集群 1.集群配置的使用

要在创建集群时指定配置文件,请使用以下标志:

kind create cluster --config kind-example-config.yaml

kind-example-config.yaml配置案例如下:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
# 用一些额外的设置修补生成的kubeadm配置
kubeadmConfigPatches:
- |
  apiVersion: kubelet.config.k8s.io/v1beta1
  kind: KubeletConfiguration
  evictionHard:
    nodefs.available: "0%"
# 使用JSON 6902补丁对其进行进一步修补
kubeadmConfigPatchesJSON6902:
- group: kubeadm.k8s.io
  version: v1beta2
  kind: ClusterConfiguration
  patch: |
    - op: add
      path: /apiServer/certSANs/-
      value: my-hostname
# 1 控制平面节点和3个子节点
nodes:
# the control plane node config
- role: control-plane
# the three workers
- role: worker
- role: worker
- role: worker
2.单控制面集群
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
# 用一些额外的设置修补生成的kubeadm配置
name: app-1-cluster
kubeadmConfigPatches:
- |
  apiVersion: kubelet.config.k8s.io/v1beta1
  kind: KubeletConfiguration
  evictionHard:
    nodefs.available: "0%"
# 使用JSON 6902补丁对其进行进一步修补
kubeadmConfigPatchesJSON6902:
- group: kubeadm.k8s.io
  version: v1beta2
  kind: ClusterConfiguration
  patch: |
    - op: add
      path: /apiServer/certSANs/-
      value: my-hostname
# 1 控制平面节点和3个子节点
nodes:
# the control plane node config
- role: control-plane
# the three workers
- role: worker
- role: worker
- role: worker

3.单控制面特定版本集群
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
 - role: control-plane
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4
 - role: worker
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4
 - role: worker
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4
  • kindest/node:v1.18.15:为k8s版本号
  • sha256:加密信息

相关github网址:https://github.com/kubernetes-sigs/kind/releases

4.将端口映射到主机

可以使用以下命令将额外的端口从节点映射到主机:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  extraPortMappings:
  - containerPort: 80
    hostPort: 80
    listenAddress: "0.0.0.0" # Optional, defaults to "0.0.0.0"
    protocol: udp # Optional, defaults to tcp
5.创建一个包含 Ingress 的集群 5.1 配置文件
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4
  kubeadmConfigPatches:
  - |
    kind: InitConfiguration
    nodeRegistration:
      kubeletExtraArgs:
        node-labels: "ingress-ready=true"
  extraPortMappings:  
  - containerPort: 80
    hostPort: 80
    protocol: TCP
  - containerPort: 443
    hostPort: 443
    protocol: TCP
- role: worker
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4
- role: worker
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4

5.2 创建集群
kind create cluster --name kind --config  cluster.yaml
5.3 部署Ingress
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/kind/deploy.yaml
5.4 访问Ingress
curl http://127.0.0.1
curl -k https://127.0.0.1:443
6.特性门控

特性门控是描述 Kubernetes 特性的一组键值对。你可以在 Kubernetes 的各个组件中使用 --feature-gates flag 来启用或禁用这些特性。

相关网址:https://kubernetes.io/zh/docs/reference/command-line-tools-reference/feature-gates/

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
featureGates:
  FeatureGateName: true
7.运行nginx
kubectl run nginx --image=nginx:1.14-alpine

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/845096.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号