首页 > 其他分享 >本地部署一套k8s集群

本地部署一套k8s集群

时间:2023-02-25 13:55:39浏览次数:33  
标签:cri kubernetes -- 集群 本地 kubeadm k8s docker

我这里准备三台本地vmware虚拟机,版本号centos7.9,一台master节点,一台node1,一台node2

kubeadm方式部署。Kubeadm 是一个 K8s 部署工具,提供 kubeadm init 和 kubeadm join,用于快速部署 Kubernetes集群。

一、初始化虚拟机环境(三台虚拟机都执行)

[root@k8s ~]# yum update #更新所有本地包,操作更新完成后建议快照一下。

二、操作所有节点

# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld   # 关闭 selinux sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久 setenforce 0 # 临时   # 关闭 swap swapoff -a # 临时 sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久   # 根据规划设置主机名 vi /etc/hosts 192.168.10.1 k8s-master 192.168.10.2 k8s-node1 192.168.10.3 k8s-node2

# 将桥接的 IPv4 流量传递到 iptables 的链 cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system # 生效   # 时间同步 yum install ntpdate -y ntpdate time.windows.com

三、安装docker(三台虚拟机都执行)

1.wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo 2.yum -y install docker-ce 3.systemctl enable docker && systemctl start docker   4.配置镜像下载加速器: cat > /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver=systemd"] 阿良教育:http://www.aliangedu.cn } EOF 5.systemctl restart docker #重启docker 6.docker info #查看docker详情  

四、安装cri-dockerd(三台虚拟机都执行)

1. wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.2.5/cri-dockerd-0.2.5-3.el7.x86_64.rpm 2. rpm -ivh cri-dockerd-0.2.5-3.el7.x86_64.rpm 3. 指定依赖镜像地址:     vi /usr/lib/systemd/system/cri-docker.service ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7 4. systemctl daemon-reload 5. systemctl enable cri-docker && systemctl start cri-docker  

五、添加阿里云 YUM 软件源(三台虚拟机都执行)

cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF

六、安装 kubeadm,kubelet 和 kubectl(三台虚拟机都执行)

由于版本更新频繁,这里指定版本号部署: 1. yum install -y kubelet-1.25.0 kubeadm-1.25.0 kubectl-1.25.0 2. systemctl enable kubelet  

七、 部署 Kubernetes Master (master节点执行)

1. 在 192.168.10.1(Master)执行。    kubeadm init \    --apiserver-advertise-address=192.168.10.1 \    --image-repository registry.aliyuncs.com/google_containers \    --kubernetes-version v1.25.0 \    --service-cidr=10.96.0.0/12 \    --pod-network-cidr=10.244.0.0/16 \    --cri-socket=unix:///var/run/cri-dockerd.sock \    --ignore-preflight-errors=all   注释:   • --apiserver-advertise-address 集群通告地址   • --image-repository 由于默认拉取镜像地址 k8s.gcr.io 国内无法访问,这里指定阿里云镜像仓库地址   • --kubernetes-version K8s 版本,与上面安装的一致阿良教育:http://www.aliangedu.cn   • --service-cidr 集群内部虚拟网络,Pod 统一访问入口   • --pod-network-cidr Pod 网络,与下面部署的 CNI 网络组件 yaml 中保持一致   • --cri-socket 指定 cri-dockerd 接口,如果是 containerd 则使用--cri-socket unix:///run/containerd/containerd.sock 2. 初始化完成后,最后会输出一个 join 命令,先记住,下面用。     拷贝 kubectl 使用的连接 k8s 认证文件到默认路径:     1)mkdir -p $HOME/.kube     2)sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config     3)sudo chown $(id -u):$(id -g) $HOME/.kube/config     查看工作节点:     4)kubectl get nodes          NAME STATUS ROLES AGE VERSION          k8s-master NotReady control-plane,master 20s v1.25.0 注:由于网络插件还没有部署,还没有准备就绪 NotReady,先继续参考资料:   https://kubernetes.io/zh/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file   https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#initializing-your-control-plane-node

八、加入 Kubernetes Node (node1,node2执行)

在 192.168.10.2/3(Node)执行。 向集群添加新节点,执行在 kubeadm init 输出的 kubeadm join 命令并手动加上 --cri-socket=unix:///var/run/cri-dockerd.sock: 1. kubeadm join 192.168.10.1:6443 --token 7gqt13.kncw9hg5085iwclx \ --discovery-token-ca-cert-hash sha256:66fbfcf18649a5841474c2dc4b9ff90c02fc05de0798ed690e1754437be35a01 --cri-socket=unix:///var/run/cri-dockerd.sock   默认 token 有效期为 24 小时,当过期之后,该 token 就不可用了。这时就需要重新创建 token,   可以直接使用命令快捷生成:阿良教育:http://www.aliangedu.cn。kubeadm token create --print-join-command 参考资料:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-join/

九、 部署容器网络(CNI)(master节点执行)

Calico 是一个纯三层的数据中心网络方案,是目前 Kubernetes 主流的网络方案。下载 YAML: 1. wget https://docs.projectcalico.org/manifests/calico.yaml   下载完后还需要修改里面定义 Pod 网络(CALICO_IPV4POOL_CIDR),与前面 kubeadm init 的 --pod-network-cidr 指定的一样。   修改完后文件后,部署: 2. kubectl apply -f calico.yaml 3. kubectl get pods -n kube-system   等 Calico Pod 都 Running,节点也会准备就绪。   注:以后所有 yaml 文件都只在 Master 节点执行。   安装目录:/etc/kubernetes/   组件配置文件目录:/etc/kubernetes/manifests/   参考资料:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network

十、 部署 Dashboard(master节点执行)

Dashboard 是官方提供的一个 UI,可用于基本管理 K8s 资源。YAML 下载地址: 1. https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml 课件中文件名是:kubernetes-dashboard.yaml 默认 Dashboard 只能集群内部访问,修改 Service 为 NodePort 类型,暴露到外部:阿良教育:http://www.aliangedu.cn 1. vi recommended.yaml   ...   kind: Service   apiVersion: v1   metadata:   labels:   k8s-app: kubernetes-dashboard   name: kubernetes-dashboard   namespace: kubernetes-dashboard   spec:   ports:   - port: 443   targetPort: 8443   nodePort: 30001   selector:   k8s-app: kubernetes-dashboard   type: NodePort   ... 2. kubectl apply -f recommended.yaml 3. kubectl get pods -n kubernetes-dashboard

十一、部署完成访问地址

访问地址:https://IP:30001  

标签:cri,kubernetes,--,集群,本地,kubeadm,k8s,docker
From: https://www.cnblogs.com/peijiao/p/17153376.html

相关文章

  • kubernetes集群pod中的pause容器作用
    kubernetes集群pod中的pause容器作用我们搭建完集群了以后,可以使用最简单的方式创建一个pod,随意你建立什么pod,去访问相应node上执行​​dockerps​​就会看到有一种pause......
  • k8s的滚动更新
    一、什么是滚动更新当某个服务需要升级时,传统的做法是,先将要更新的服务下线,业务停止后再更新版本和配置,然后重新启动服务。如果业务集群规模较大时,这个工作就变成了一个......
  • java——spring boot集成RabbitMQ——windows本地安装和运行
    思维导图  一、什么是消息队列消息指的是两个应用间传递的数据。数据的类型有很多种形式,可能只包含文本字符串,也可能包含嵌入对象。 “消息队列(MessageQueue)......
  • redis 集群管理工具可视化 官方
    Redis官方管理工具下载地址:https://redis.com/redis-enterprise/redis-insight/#insight-form进入页面点击download  输入email选择版本下载  下载到本......
  • Redis6.2.6集群
    环境:Linux版本:CentOS7集群部署之前先完成单机安装stansalone准备echo511>/proc/sys/net/core/somaxconn下载Redis:redis-stack-server-6.2.6https://redis.io/ ......
  • k8s-部署Nginx+Keepalived高可用负载均衡器
    本文章是 k8s二进制高可用集群部署 的分支。详细步骤请参考目录。Kubernetes集群高可用性包含以下两个层面的考虑:Etcd数据库的高可用性KubernetesMaster组件......
  • Redis:七、集群
    @目录一、集群是什么?二、集群的存储结构设计三、集群的搭建四、主从下线和主从切换总结一、集群是什么?集群:集群就是使用网络将若干台计算机联通起来,并提供统一的管理方......
  • centos本地yum源配置方法
    1.   放入Centos6.4的镜像光盘或找到镜像文件mount–oloop–tiso9660CentOS-6.0-i386-bin-DVD.isomount /dev/cdrom /media/cdrom​2.   2编辑repo文件:cd......
  • Eureka高可用集群服务端和客户端配置
    微服务应用中,生产环境一般都需要保障服务注册中心的高可用!高可用也分好几个等级,例如:同数据中心或区(Zone)高可用——》同地区(Region)跨数据中心或区(Zone)高可用——......
  • EasyCVR视频融合平台国标级联可支持推送设备及本地经纬度信息
    EasyCVR视频融合平台部署轻快、功能灵活,可支持多协议、多类型设备接入,在视频能力上,可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、集群、智能分析以及平......