经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Kubernetes » 查看文章
最新centos7 部署 k8s v1.26,简单易懂,跟着命令敲就完事
来源:cnblogs  作者:fengzeng  时间:2023/4/6 8:44:30  对本文有异议

其实没什么好说的,搭环境搞了一整天,人已经麻了,踩了很多坑,网上教程的版本大都比较旧,总是和最新版本各种地方不兼容,把坑踩完了,k8s目前最新的版本是v1.26,跟着命令敲就行了,我已经重复部署了很多次了,坑已经排完了....

我试验的是1主2从结构,centos 2c2g 就足够。

centos7 部署 k8s 1m2n

1 系统环境准备

1.1 配置主机名

  1. [root@localhost ~]# hostnamectl set-hostname master0
  2. [root@localhost ~]# cat /etc/hosts
  3. 192.168.19.128 master0
  4. 192.168.19.129 node0
  5. 192.168.19.130 node1
  6. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  7. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

1.2 关闭selinux

  1. sed -i 's/enforcing/disabled/' /etc/selinux/config
  2. setenforce 0

1.3 配置ip

  1. vim /etc/sysconfig/network-scripts/ifcfg-ens33
  2. IPADDR=192.168.19.129
  3. GATEWAY=192.168.19.2
  4. NETMASK=255.255.255.0
  5. DNS1=8.8.8.8
  6. service network restart
  1. # 关闭swap
  2. swapoff -a
  3. sed -ri 's/.*swap.*/#&/' /etc/fstab

1.4 安装ipvs 转发支持 【所有节点】

  1. # 系统依赖包
  2. yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git
  3. # 开启ipvs 转发
  4. modprobe br_netfilter
  5. cat > /etc/sysconfig/modules/ipvs.modules << EOF
  6. #!/bin/bash
  7. modprobe -- ip_vs
  8. modprobe -- ip_vs_rr
  9. modprobe -- ip_vs_wrr
  10. modprobe -- ip_vs_sh
  11. modprobe -- nf_conntrack
  12. EOF
  13. chmod 755 /etc/sysconfig/modules/ipvs.modules
  14. bash /etc/sysconfig/modules/ipvs.modules
  15. lsmod | grep -e ip_vs -e nf_conntrack

1.5 安装containerd [全部节点安装]

  1. # 创建 /etc/modules-load.d/containerd.conf 配置文件:
  2. cat << EOF > /etc/modules-load.d/containerd.conf
  3. overlay
  4. br_netfilter
  5. EOF
  6. modprobe overlay
  7. modprobe br_netfilter
  8. # 获取阿里云YUM源
  9. wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  10. # 下载安装:
  11. yum install -y containerd.io

1.6 配置containerd [所有节点]

  1. # 生成containerd的配置文件
  2. mkdir /etc/containerd -p
  3. # 生成配置文件
  4. containerd config default > /etc/containerd/config.toml
  5. # 编辑配置文件
  6. vim /etc/containerd/config.toml
  7. sandbox_image = "k8s.gcr.io/pause:3.6"
  8. 改为:sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"
  9. systemctl enable containerd
  10. systemctl start containerd

二:安装k8s 1.26.x

2.1 配置 k8s 1.26 的yum 源

  1. # 添加阿里云YUM软件源
  2. cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  3. [kubernetes]
  4. name=Kubernetes
  5. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
  6. enabled=1
  7. gpgcheck=0
  8. repo_gpgcheck=0
  9. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  10. EOF
  11. yum makecache

2.2 安装kubeadm,kubelet和kubectl

  1. # 目前最新版本是1.26.0,我们直接上最新版
  2. yum install -y kubectl kubelet kubeadm
  3. # 设置kubelet为开机自启动即可,由于没有生成配置文件,集群初始化后自动启动
  4. systemctl enable kubelet
  5. # 准备k8s 1.26.0 所需要的镜像
  6. kubeadm config images list --kubernetes-version=v1.26.0

2.3 集群初始化

  1. # 使用kubeadm init命令初始化
  2. #在master0上执行,报错请看k8s报错汇总
  3. echo 1 > /proc/sys/net/ipv4/ip_forward
  4. kubeadm init --kubernetes-version=v1.26.0 --pod-network-cidr=10.224.0.0/16 --apiserver-advertise-address=192.168.19.128 --image-repository registry.aliyuncs.com/google_containers
  5. # 注释
  6. # --apiserver-advertise-address 集群通告地址(此处设置为 master0 地址)
  7. # --image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
  8. # --kubernetes-version K8s版本,与上面安装的一致
  9. # --service-cidr 集群内部虚拟网络,Pod统一访问入口
  10. # --pod-network-cidr Pod网络,,与下面部署的CNI网络组件yaml中保持一致
  11. # 上面命令执行完后,会生成两条提示,分别执行
  12. # root 用户,master0 上执行
  13. export KUBECONFIG=/etc/kubernetes/admin.conf
  14. # 其它节点加入集群
  15. kubeadm join 192.168.19.128:6443 --token pb1jpq.ogibtvmpk29l7pol --discovery-token-ca-cert-hash sha256:099131e6bfc2d69a9d68b3ee52e2d29bce0ad8b5193ffe2559d231c63713a04a

2.5 集群部署网络插件

  1. # 网络组件有很多种,只需要部署其中一个即可,推荐Calico。
  2. # Calico是一个纯三层的数据中心网络方案,Calico支持广泛的平台,包括Kubernetes、OpenStack等。
  3. # Calico 在每一个计算节点利用 Linux Kernel 实现了一个高效的虚拟路由器( vRouter) 来负责数据转发,而每个 vRouter 通过 BGP # 协议负责把自己上运行的 workload 的路由信息向整个 Calico 网络内传播。
  4. # 此外,Calico 项目还实现了 Kubernetes 网络策略,提供ACL功能。
  5. # 下载Calico
  6. wget http://manongbiji.oss-cn-beijing.aliyuncs.com/ittailkshow/k8s/download/calico.yaml
  7. kubectl apply -f calico.yaml
  1. # 查看节点:
  2. kubectl get node

常用命令

  1. # 查询node
  2. kubectl get nodes -o wide
  3. # 查询 pod
  4. kubectl get pods -o wide (-A 查询全部pod --namespace=‘default 默认查询命名空间为default的)
  5. # 查看pod详情
  6. kubectl describe pod <pod name>

原文链接:https://www.cnblogs.com/Fzeng/p/17288286.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号