【K8S系列】

系列文章目录

第一章 使用kebuadm搭建k8s集群


文章目录

  • 系列文章目录
      • 一、安装容器运行时
      • 二、安装kebuadm
      • 三、Kubeadm 初始化 Kubernetes 集群
            • 1. 配置文件初始化集群
            • 2. 启动集群
      • 四、安装 Pod 网络插件


提示:以下是本篇文章正文内容,下面案例可供参考

一、安装容器运行时

这里选择安装 containerd 容器运行时,安装 docker 即可,docker 底层调用容器进行时 即为 containerd。

二、安装kebuadm

  1. 更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包:

    sudo apt-get update
    sudo apt-get install -y apt-transport-https ca-certificates curl
    
  2. 下载 Google Cloud 公开签名秘钥:

    sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.25/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
    

    如若下载超时: 手动下载 https://packages.cloud.google.com/apt/doc/apt-key.gpg 将下载后的 apt-key.gpg 复制到 /usr/share/keyrings/kubernetes-archive-keyring.gpg 文件下

  3. 下载 Google Cloud 公开签名秘钥:

    echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.25/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
    
  4. 更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本:

    sudo apt-get update
    sudo apt-get install -y kubelet=1.25.5-00 kubeadm=1.25.5-00 kubectl=1.25.5-00
    sudo apt-mark hold kubelet kubeadm kubectl
    

    执行 sudo apt-get update ,从谷歌下载密钥超时,调整第三步为网易密钥: echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

  5. Centos 系统 安装kebuadm:

    cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    exclude=kubelet kubeadm kubectl
    EOF
    
    # Set SELinux in permissive mode (effectively disabling it)
    sudo setenforce 0
    sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
    sudo systemctl enable --now kubelet
    

    如若下载超时:设置

    cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    exclude=kubelet kubeadm kubectl
    EOF
    
    

    如若 [Errno -1] repomd.xml signature could not be verified for kubernetes 验证失败 :设置(去掉签名校验)

    cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    exclude=kubelet kubeadm kubectl
    EOF
    

    参考链接:k8s官网部署文档

三、Kubeadm 初始化 Kubernetes 集群

1. 配置文件初始化集群
# 通过 kubeadm 命令在当前目录生成配置文件模版
kubeadm config print init-defaults --kubeconfig ClusterConfiguration > kubeadm-init-conf.yml

# 下方超链接指向k8s集群初始化配置文件
# 可按需要调整k8s集群初始化配置,云服务器测试主机节点IP仅能通过内网ip启动或0.0.0.0网段

=== k8s-init-conf 文件 ===

2. 启动集群
# 查看需要下载镜像(如若拉取镜像版本与查看版本不一致导致启动失败,需要按查看版本进行调整)
kubeadm config images list --config kubeadm-init-conf.yml

# 步骤一:拉取镜像
kubeadm config images pull --config kubeadm-init-conf.yml

# 步骤二:初始化k8s(配置文件启动)
kubeadm init --config=kubeadm-init-conf.yml --upload-certs | tee kubeadm-init.log

# 步骤二:初始化k8s(参数化启动)
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.0.1 --upload-certs
一、步骤一 报错 ”unknown service runtime.v1alpha2.RuntimeService”
(containerd 禁用 CRI 插件,注释内容或删除、替换config.toml 重启containerd即可)
解决:
# 下方超链接指向containerd配置文件
1. 注释掉 /etc/containerd/config.toml 中的 disabled_plugins = [“cri”]
2. systemctl restart containerd


二、步骤二 执行后 node 节点报错 “cni 插件未初始化”
重启containerd即可
解决:
4. systemctl restart containerd

=== containerd-config.toml 配置文件 ===

四、安装 Pod 网络插件

# 选择flannel网络插件,执行以下命令即可
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

=== flannel Github 地址 ===

你可能感兴趣的:(kubernetes,docker,容器)