k8s安装部署集群

1|0说明

这里准备了三台服务器,一台作为主节点(Master),两台作为子节点(Node)

每个步奏分为:

  • ALL = 所有服务器
  • Master = 主节点
  • Node = 子节点

2|0详细步骤

2|1查看ip(ALL)

ip addr

这里地址很重要,最好保存下来,后续会用到

2|2配置HostName(ALL)

1|0配置

sudo hostnamectl set-hostname master sudo hostnamectl set-hostname node1 sudo hostnamectl set-hostname node2

这条命令会删除/etc/hostname文件中的主机名,然后替换为新的主机名。系统会更新/etc/hosts文件.

1|0验证

hostname

2|3IP与主机名映射

1|0配置

vi /etc/hosts

 将上方获取到的ip地址和hostname配置

192.168.40.128 master 192.168.40.130 node1 192.168.40.131 node2 185.199.108.133 raw.githubusercontent.com

其中 185.199.108.133 是后续安装flannel网络插件要用到的

1|0验证

ping node1

2|4Close SelLinux(ALL)

1|0配置

setenforce 0 sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

1|0验证

getenforce

2|5Close FireWalld(ALL)

1|0配置

systemctl stop firewalld systemctl disable firewalld

1|0验证

systemctl status firewalld

2|6Close SwapOff(ALL)

swapoff -a sed -i 's/.*swap.*/#&/' /etc/fstab

2|7添加K8S、Docker的安装源(ALL)

1|0K8S

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

1|0Docker

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2|8安装K8S组件(ALL)

yum install kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4 docker-ce-20.10.0 docker-ce-cli-20.10.0 -y

这里说明一下,我这里的指令指定了版本,k8s的所有版本使用起来操作方法都一样,但是如果用其他版本的话,可能需要配置一些东西

2|9启动Kubelet、Docker,设置开机自启(ALL)

1|0配置

systemctl enable kubelet systemctl start kubelet systemctl enable docker systemctl start docker

Kubelet组件运行在Node节点上,维持运行中的Pods以及提供kuberntes运行时环境,主要完成以下使命:

  1. 监视分配给该Node节点的pods
  2. 挂载pod所需要的volumes
  3. 下载pod的secret
  4. 通过docker/rkt来运行pod中的容器
  5. 周期的执行pod中为容器定义的liveness探针
  6. 上报pod的状态给系统的其他组件
  7. 上报Node的状态

1|0验证

systemctl daemon-reload systemctl status kubelet

 要保证为running

 如果出错,卸载重装

yum -y remove kubelet // -y表示又询问都是yes yum list kubelet // 查看是否存在 ----查看状态 systemctl daemon-reload systemctl status kubelet yum -y install kubelet // 重新安装 systemctl enable kubelet // 开机自启 systemctl start kubelet // 启动

2|10修改Docker配置(ALL)

1|0配置

cat <<EOF > /etc/docker/daemon.json { "registry-mirrors": ["https://registry.docker-cn.com"], "exec-opts": ["native.cgroupdriver=systemd"] } EOF
systemctl daemon-reload systemctl restart docker

1|0验证

docker info |grep Cgroup

2|11初始化集群(Master)

kubeadm init --kubernetes-version=1.22.4 \ --apiserver-advertise-address=192.168.40.128 \ --image-repository registry.aliyuncs.com/google_containers \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16
  • --image-repository registry.aliyuncs.com/google_containers 指定镜像源,由于kubeadm 默认从官网k8s.grc.io下载所需镜像,国内无法访问,因此需要通过--image-repository指定阿里云镜像仓库地址
  • --kubernetes-version:版本信息 kubectl version 查询
  • 定义POD的网段为: 10.244.0.0/16
  • apiserver地址就是master本机IP地址
  • --service-cidr=10.96.0.0/12 : 这个参数后的IP地址直接就套用10.96.0.0/12 ,以后安装时也套用即可,不要更改
  • --pod-network-cidr=10.244.0.0/16 : k8s内部的pod节点之间网络可以使用的IP段,不能和service-cidr写一样,如果不知道怎么配,就先用这个10.244.0.0/16

 如果出现报错,重置

kubeadm reset

成功后,一定要复制最后一句话

kubeadm join 192.168.40.128:6443 --token zyxhg5.ua8dwh4wx9dgrwzk --discovery-token-ca-cert-hash sha256:70d215908d3fefe90b0ca2d00eed5342df3eb083862dd7ed91a105972ac82f29

如果没有复制,可以重新获取

kubeadm token create --print-join-command

2|12复制权限文件(Master)

su - root mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config

2|13安装Flannel网络插件(Master)

 

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

网络可能会很慢,多试几次

2|14加入集群(Node)

这个步奏就是在子结点上,执行上面主节点初始化时获取的 join 指令 

2|15复制权限文件(Node)

mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config

2|16查看所有节点(ALL)

kubectl get nodes

 


__EOF__

本文作者张永峰
本文链接https://www.cnblogs.com/zyfeng/p/17499057.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Cyber_nnno  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示