kind 安装k8s集群

资源要求:

4C/8G

https://kind.sigs.k8s.io/docs/user/known-issues/#failure-to-create-cluster-with-cgroups-v2

centos 7 在线升级内核

默认内核版本太低

![image-20240513154841260](/Users/yangzedong/Library/Application Support/typora-user-images/image-20240513154841260.png)

参考链接:https://www.cnblogs.com/liugp/p/16950443.html

安装docker/kubectl

kubectl :https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux/

1
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

docker:https://www.runoob.com/docker/centos-docker-install.html

1
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

Helm:https://helm.sh/zh/docs/intro/install/

安装k8s

参考文档:https://github.com/kubernetes-sigs/kind/tree/v0.22.0

  1. 安装kind 二进制文件

    1
    
    [ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.21.0/kind-$(uname)-amd64
    

    *可能比较慢,可以选择手动下载安装,二进制包下载地址:https://github.com/kubernetes-sigs/kind/releases

    1
    2
    3
    4
    
    # 执行安装操作
    chmod +x ./kind
    chmod +x ./kind
    mv ./kind /usr/local/bin/
    
  2. 拉取镜像(可选)

    1
    2
    3
    4
    5
    6
    7
    8
    
    # 选一个版本
    $ docker search kindest/node
    NAME                 DESCRIPTION                           STARS     OFFICIAL
    kindest/node         https://sigs.k8s.io/kind node image   104       
    kindest/node-amd64                                         2         
    kindest/node-arm64                                         0     
    # 镜像拉取
    docker pull kindest/node
    
  3. 安装集群

    1
    2
    3
    4
    
    # 在线创建集群
    kind create cluster
    # 指定 配置文件
    # kind create cluster --config kind-example-config.yaml
    

    配置文件地址:https://kind.sigs.k8s.io/docs/user/configuration/

  4. 安装ingress

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    # 1. 获取yaml
    wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
    # 2. 因服务器无外网,mac上进行下载,指定架构:一般是amd64和arm64、aarch64
    # registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1
    # registry.k8s.io/ingress-nginx/controller:v1.10.1
    # registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1 
    docker pull --platform amd64 xxx 
    # 3. 装载image
    kind load docker-image img:v1
    # 或者
    kind load image-archive my-image-archive.tar
    

![image-20240513220418988](/Users/yangzedong/Library/Application Support/typora-user-images/image-20240513220418988.png)

kind架构

参考文档:https://kind.sigs.k8s.io/docs/design/initial/

img

  1. k8s中的端口映射

    参考地址:https://www.cnblogs.com/baixiaoyong/p/16051137.html

    k8s中的pod:https://fly-luck.github.io/2018/04/15/Kubernetes%20Ports/

    containerPort vs. hostPort

    出现在如Deployment、Pod等资源对象描述文件中的容器部分,针对容器端口起类似于docker run -p <containerPort>:<hostPort>的作用: containerPort:容器暴露的端口。 hostPort:容器暴露的端口直接映射到的主机端口。

    port vs. targetPort vs. nodePort

    出现在Service描述文件中,当Service的类型为ClusterIP时: port:Service中ClusterIP对应的端口。 targetport:clusterIP作为负载均衡, 后端目标实例(容器)的端口,与上述containerPort保持一致。

    当Service的类型为NodePort时: nodePort:由于ClusterIP只能集群内访问,配置nodePort会在每个运行kubelet节点的宿主机打开一个端口,用于集群外部访问。

使用 Hugo 构建
主题 StackJimmy 设计