kubeadm安装k8s-v1.27.1

kubeadm安装k8s-v1.27.1和calico-v3.26.0

环境准备(每台主机都得设置)

  1. 系统配置

    cat << EOF > /etc/hosts
    192.168.1.10  master
    192.168.1.11  node
    192.168.1.12  node
    EOF
    
  2. 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    
  3. 关闭swap

    sed -ri 's/.*swap.*/#&/' /etc/fstab 
    swapoff -a 
    
  4. 禁用selinx

    # 临时生效
    setenforce 0
    #重启永久生效
    vi /etc/selinux/config
    SELINUX=disabled
    
  5. 添加内核模块

    # 为了开机识别自动添加
    cat << EOF > /etc/modules-load.d/k8s.conf
    overlay
    br_netfilter
    EOF
    # 手动添加
    modprobe overlay
    modprobe br_netfilter
    
  6. 开启ipv4转发

    cat << EOF > /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
    user.max_user_namespaces=28633
    EOF
    # 执行生效
    sysctl -p /etc/sysctl.d/k8s.conf
    
  7. 配置服务器支撑ipvs

    # 安装 ipset 和 ipvsadm
    yum install ipset ipvsadm -y
    # 需要加载的内核脚本
    cat > /etc/sysconfig/modules/ipvs.modules <<EOF
    #!/bin/bash
    modprobe -- ip_vs
    modprobe -- ip_vs_rr
    modprobe -- ip_vs_wrr
    modprobe -- ip_vs_sh
    modprobe -- nf_conntrack_ipv4
    EOF
    chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
    

安装容器运行时(containerd)

  1. 安装服务

    # 安装必须的系统工具
    yum install -y yum-utils device-mapper-persistent-data lvm2
    # 添加repo
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # 安装 containerd
    yum install containerd -y
    
  2. 生成配置

    # 生成配置
    mkdir -p /etc/containerd
    containerd config default > /etc/containerd/config.toml
    # 修改下面2个配置
    SystemdCgroup = true
    sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
    
  3. 启动服务

    systemctl enable containerd --now
    systemctl restart containerd
    

安装kubeadm和kubelet(每个节点都要)

  1. 添加源

    # 添加repo
    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    yum makecache fast
    
  2. 安装服务

    # master 还需要安装kubectl
    yum install -y kubectl-1.27.1 kubelet-1.27.1 kubeadm-1.27.1
    # node节点服务器只需要安装 kubelet 和 kubeadm
    yum install -y kubelet-1.27.1 kubeadm-1.27.1
    
  3. 开机启动kubelet

    systemctl enable kubelet.service
    systemctl start kubelet.service
    

时间同步(chrony)

  1. 安装chrony

    yum install  chrony  -y
    
  2. 加入开机启动

    systemctl start chronyd
    systemctl enable chronyd
    systemctl status chronyd
    
  3. 设置时区

    timedatectl set-timezone "Asia/Shanghai"
    
  4. 设置时间服务器

    # 注释掉默认的时间服务器
    #server 0.centos.pool.ntp.org iburst
    #server 1.centos.pool.ntp.org iburst
    #server 2.centos.pool.ntp.org iburst
    #server 3.centos.pool.ntp.org iburst
    
    # 设置为阿里云的
    server ntp1.aliyun.com iburst
    server ntp2.aliyun.com iburst
    server ntp3.aliyun.com iburst
    
  5. 做内网段的时间服务器

    # 允许那个网段的请求时间
    allow 192.168.1.0/24
    
  6. 重启并手动时间

    # 重启服务
    systemctl restart chronyd
    # 手动同步系统时钟
    chronyc -a makestep
    # 查看时间同步源
    chronyc sources -v
    
    

创建集群

  1. kubeadm初始化

    kubeadm init \
    --apiserver-advertise-address=192.168.1.10 \
    --image-repository registry.aliyuncs.com/google_containers \
    --kubernetes-version v1.27.1 \
    --service-cidr=10.96.0.0/12 \
    --pod-network-cidr=10.244.0.0/16 \
    --cri-socket=unix:///var/run/containerd/containerd.sock \
    --ignore-preflight-errors=all
    
  2. 配置kubectl访问集群

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  3. 节点加入集群(节点服务器上操作)

    kubeadm join 192.168.1.10:6443 --token 3kaxq7.sxd28ivdfdvmxcfd \
            --discovery-token-ca-cert-hash sha256:d54b81923658143eb85530c317c28a4e375389e04f2db4cf6fcb1b927ce3997c
    

部署calico-v3.26.0

  1. 下载release-v3.26.0.tgz

  2. 解压后只要如下物品:

    1. images/calico-cni.tar
    2. images/calico-kube-controllers.tar
    3. images/calico-node.tar
    4. manifests/calico.yaml
  3. containerd 导入镜像

    # 导入镜像到 k8s.io 命名空间
    ctr -n k8s.io images import calico-cni.tar
    ctr -n k8s.io images import calico-kube-controllers.tar
    ctr -n k8s.io images import calico-node.tar
    
  4. 执行yaml部署pod

    kubectl apply -f calico.yaml
    
  5. 查看集群状态

    kubectl get cs
    
    Warning: v1 ComponentStatus is deprecated in v1.19+
    NAME                 STATUS    MESSAGE                         ERROR
    scheduler            Healthy   ok                              
    controller-manager   Healthy   ok                              
    etcd-0               Healthy   {"health":"true","reason":""}
    

至此kubeadm快速部署集群到此结束

故障排查参考: https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在CentOS系统中使用kubeadm安装Kubernetes 1.24版本的全部命令如下: 1. 安装必需的包和软件: ``` sudo yum install -y yum-utils device-mapper-persistent-data lvm2 ``` 2. 添加Kubernetes存储库: ``` sudo yum-config-manager --add-repo https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ ``` 3. 安装kubeadmkubelet和kubectl: ``` sudo yum install -y kubeadm-1.24.0 kubelet-1.24.0 kubectl-1.24.0 ``` 4. 启动并启用kubelet服务: ``` sudo systemctl start kubelet && sudo systemctl enable kubelet ``` 5. 初始化集群: ``` sudo kubeadm init --kubernetes-version=1.24.0 --pod-network-cidr=10.244.0.0/16 ``` 6. 配置kubectl: ``` mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 7. 安装网络插件: ``` kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml ``` 8. 加入节点: ``` kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash> ``` 请注意,在实际使用时,您需要替换`<control-plane-host>`、`<control-plane-port>`、`<token>`和`<hash>`的值。 ### 回答2: 在CentOS系统中使用kubeadm安装Kubernetes 1.24版本需要执行以下步骤: 1. 确保系统已经安装CentOS操作系统并更新到最新版本。 2. 安装Docker,首先安装Docker的相关依赖: ``` sudo yum install -y yum-utils device-mapper-persistent-data lvm2 ``` 接下来,添加Docker的yum源并安装Docker: ``` sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io ``` 启动Docker并设置为开机自启动: ``` sudo systemctl start docker sudo systemctl enable docker ``` 3. 安装kubeadmkubelet和kubectl,添加Kubernetes的yum源: ``` sudo tee /etc/yum.repos.d/kubernetes.repo <<EOF [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=kube* EOF ``` 安装kubeadmkubelet和kubectl: ``` sudo yum install -y kubeadm-1.24.0 kubelet-1.24.0 kubectl-1.24.0 --disableexcludes=kubernetes ``` 启动kubelet并设置为开机自启动: ``` sudo systemctl start kubelet sudo systemctl enable kubelet ``` 4. 创建Kubernetes集群,首先选择一个主节点,执行以下命令初始化主节点: ``` sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 初始化完成后,根据输出的提示执行以下命令设置kubeconfig: ``` mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 安装网络插件(这里以Flannel为例): ``` kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 接下来,将其他节点加入集群,运行输出的`kubeadm join`命令即可。 通过以上步骤,在CentOS系统中使用kubeadm成功安装Kubernetes 1.24版本。 ### 回答3: 在CentOS系统上使用kubeadm安装Kubernetes 1.24版本,可以按照以下步骤操作: 1. 确保系统已经预先安装好Docker,并且启动Docker服务。 ``` systemctl start docker systemctl enable docker ``` 2. 更新系统的软件包,并安装所需的依赖项。 ``` yum update yum install -y curl wget kubelet kubeadm kubectl ``` 3. 配置kubeadm使用国内镜像源,以提高下载速度。 ``` echo "KUBELET_EXTRA_ARGS=--image-repository=registry.aliyuncs.com/google_containers" > /etc/sysconfig/kubelet ``` 4. 初始化kubeadm并指定使用的版本。 ``` kubeadm init --kubernetes-version=1.24.0 ``` 5. 完成初始化后,根据kubeadm提供的输出信息执行以下命令,将kubectl与集群进行连接。 ``` mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 6. 部署Pod网络插件,以便集群中的Pod可以相互通信。 这里以Calico网络插件为例: ``` kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml ``` 7. 等待一段时间,直到所有的节点状态都变为Ready。 ``` kubectl get nodes ``` 8. 完成上述步骤后,Kubernetes集群已经成功安装。 请注意,以上步骤仅适用于CentOS系统上使用kubeadm安装Kubernetes 1.24版本。具体版本号和网络插件可以根据需要进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值