K8S单节点部署及集群部署

1.Minikube搭建单节点K8S

  • 前置条件:安装docker,注意版本兼容问题

    # 配置docker源
    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo# 安装docker环境依赖
    yum install -y yum-utils device-mapper-persistent-data lvm2# 安装docker
    yum install -y docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io# 启动docker并设置开机自启
    systemctl start docker && systemctl enable docker# 配置镜像加速
    vim /etc/docker/daemon.json
    {"registry-mirrors": ["https://docker.m.daocloud.io","https://dockerproxy.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://hub.uuuadc.top","https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu","https://docker.ckyl.me","https://docker.awsl9527.cn","https://mirror.baidubce.com"]
    }# 重新启动docker
    systemctl daemon-reload && systemctl restart docker
    
  • 安装kubectl和minikube

    # 下载kubectl上传到服务器
    http://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl# 下载后重命名minikube并上传到服务器
    https://storage.googleapis.com/minikube/releases/v1.18.0/minikube-linux-amd64# 添加执行权限
    chmod +x kubectl && chmod +x minikube# 复制到/usr/local/bin
    cp kubectl /usr/local/bin/ && cp minikube /usr/local/bin/# 查看版本检查是否安装成功
    kubectl version --client
    minikube version# 配置源
    vim /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# 更新yum缓存
    yum clean all
    yum -y makecache# 安装bash-completion conntrack
    yum -y install bash-completion socat conntrack
    source /etc/profile.d/bash_completion.sh# 拉取minikube启动所需镜像
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.0 &&
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0 &&
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.0 &&
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.0 &&
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 &&
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3 &&
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 &&
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.8.1# 打标签
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.0 k8s.gcr.io/kube-apiserver:v1.18.0 &&
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0 k8s.gcr.io/kube-controller-manager:v1.18.0 &&
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.0 k8s.gcr.io/kube-scheduler:v1.18.0 &&
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.0 k8s.gcr.io/kube-proxy:v1.18.0 &&
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2 &&
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3 k8s.gcr.io/etcd:3.4.3-0 &&
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7 &&
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.8.1 gcr.io/k8s-minikube/storage-provisioner:v1.8.1# 启动minikube –vm-driver=none表示使用Linux本机作为运行环境,--kubernetes-version表示使用的版本
    minikube start --vm-driver=none --kubernetes-version='v1.18.0'# 启动kubectl proxy
    kubectl proxy --port=8001 --address='192.168.91.129' --accept-hosts='^.*' &
    # 在kubectl proxy中运行
    minikube dashboard# 浏览器访问:http://192.168.91.129:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/overview?namespace=default# 查看K8S集群信息
    kubectl cluster-info
    # 查看节点信息
    kubectl get node
    # 查看内部组件
    kubectl get pod -A
    
  • 测试部署nginx

    # 创建deployment(Pod控制器的一种,直接删除Pod后,会自动创建新的,需要删除deployment)
    kubectl create deploy gen-nginx --image=nginx:1.23.0
    # 对比docker部署
    # docker run --name gen-nginx -p 8080:80 -d nginx:1.23.0# 查看deployment和pod
    kubectl get deploy,pod,svc# 暴露80端口
    kubectl expose deploy gen-nginx --port=80 --type=NodePort# 转发端口(Mini Kube临时),解释:kubectl port-forward转发一个本地端口到Pod端口,不会返回数据,需要另开终端练习
    kubectl port-forward --address 0.0.0.0 service/gen-nginx 80:80# 浏览器访问http://192.168.91.129/
    

2.KubeAdm搭建多节点K8S集群

  • 安装docker(主节点+工作节点),见文章上面,此处不重复编写

  • 配置阿里云镜像源(主节点+工作节点)vim /etc/yum.repos.d/kubernetes.repo

    [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
    
  • 安装kubelet kubeadm kubectl(主节点+工作节点)

    yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
    
  • 初始化主节点(主节点)master主机和K8S版本需配置自己的

    kubeadm init \
    --apiserver-advertise-address=192.168.91.132 \
    --image-repository registry.aliyuncs.com/google_containers \
    --kubernetes-version v1.18.0 \
    --service-cidr=10.96.0.0/12 \
    --pod-network-cidr=10.244.0.0/16
    
    • –apiserver-advertise-address:主节点的内网ip地址
    • –image-repository:镜像仓库
    • –kubernetes-version:K8S版本
    • –service-cidr --pod-network-cidr:网段不重复即可
  • 等待主节点初始化完成后执行下面命令

    在这里插入图片描述

    • 主节点执行命令

      mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
      
    • 工作节点操作,如若两台虚拟机需注意主机名hostnamectl set-hostname node1

      kubeadm join 192.168.91.130:6443 --token bh7nz3.cxb8e9jtvqjc6thg \--discovery-token-ca-cert-hash sha256:2e41d09d203c66e678a6d71b138e2144daaf6fa42683d2e76ee63e85d5e3e8ec
      
    • 主节点执行命令

      # 查看节点,状态都是NotReady,需要配置网络插件
      kubectl get nodes# 安装网络插件
      kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
      # 出现外网不可用,换种方式解决下,查询raw.githubusercontent.com的ip加入host
      vim /etc/hosts
      185.199.111.133 raw.githubusercontent.com# 查看节点状态
      kubectl get nodes
      # 查看系统Pod状态
      kubectl get pods -n kube-system
      
  • 测试部署nginx

    # 创建deployment(Pod控制器的一种)
    kubectl create deploy gen-nginx --image=nginx:1.23.0# 查看deployment和Pod
    kubectl get deploy,pod,svc# 暴露80端口,创建service
    kubectl expose deploy gen-nginx --port=80 --type=NodePort# 查看端口映射
    kubectl get deploy,pod,svc# 浏览器访问,master、node节点ip都可访问 ip:30356(随机生成的端口)
    # 注意:kubeadm部署,暴露端口对外服务会随机选端口,默认范围30000~32767,可以修改指定,后续文章记录
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/471375.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL —— MySQL逻辑架构与查询过程

文章目录 MySQL逻辑架构整体分为三层连接层服务层查询缓存解析器优化器执行器 存储引擎层系统文件层 MySQL 查询过程查询过程框图 博客1 博客2 MySQL逻辑架构整体分为三层 最上层为客户端层,并非MySQL所独有,诸如:连接管理、授权认证、权限校…

【大数据学习 | HBASE高级】storeFile文件的合并

Compaction 操作分成下面两种: Minor Compaction:是选取一些小的、相邻的StoreFile将他们合并成一个更大的StoreFile,对于删除、过期、多余版本的数据不进行清除。 Major Compaction:是指将所有的StoreFile合并成一个StoreFile&am…

微服务day08

Elasticsearch 需要安装elasticsearch和Kibana,应为Kibana中有一套控制台可以方便的进行操作。 安装elasticsearch 使用docker命令安装: docker run -d \ --name es \-e "ES_JAVA_OPTS-Xms512m -Xmx512m" \ //设置他的运行内存空间&#x…

操作系统lab4-页面置换算法的模拟

操作系统lab4-页面置换算法的模拟 文章目录 操作系统lab4-页面置换算法的模拟实验目的实验内容实验分析 代码测试用例运行结果 实验目的 1、掌握请求分页存储管理的常用理论:页面置换算法。 2、理解请求分页中的按需调页机制。 实验内容 独立地用高级语言编写和…

react-redux useSelector钩子 学习样例 + 详细解析

(一)react-redux useSelector 学习样例 详细解析 创建一个新项目,将依赖正确安装: npx create-react-app my-redux-app cd my-redux-app# 安装 Redux 和 React-Redux npm install redux react-redux# 安装 ajv npm install ajv#…

IP数据云 识别和分析tor、proxy等各类型代理

在网络上使用代理(tor、proxy、relay等)进行访问的目的是为了规避网络的限制、隐藏真实身份或进行其他的不正当行为。 对代理进行识别和分析可以防止恶意攻击、监控和防御僵尸网络和提高防火墙效率等,同时也可以对用户行为进行分析&#xff…

《Django 5 By Example》阅读笔记:p76-p104

《Django 5 By Example》学习第4天,p76-p104总结,总计29页。 一、技术总结 1.环境变量管理 这里作者使用的是:python-decouple,本人在实际项目中使用的是python-dotenv,这里只是简单的使用,感觉两者差不…

【IC每日一题:IC常用模块--RR/handshake/gray2bin】

IC每日一题:IC常用模块--RR/handshake/gray2bin 1 RR仲裁器2 异步握手信号处理3 格雷码和二进制相互转换 1 RR仲裁器 应用:在多个FIFO请求pop时存在仲裁策略,还有比如多master申请总线控制权的仲裁等这些应用场合;假如当前是最高…

【Visual Studio】使用VS调试(Debug)

确保在Debug模式下而不是Release 打断点(break point) 直接在有代码的行前单击,会出现红色的点(再次单击会取消);或者光标停留在某行,按F9 这意味着程序当执行到这一行时会终止 在打完断点后点击”本地Windows调试器“或者按F5 往下翻会…

基于RK3568J多网口电力可信物联网关解决方案

前言 随着工业物联网的普及和功能越来越强大,边缘计算网关应运而生。 边缘计算有效降低了云端服务器的负载、大大降低了带宽的占用,同时也为本地化的区域自治提供了便利条件。 边缘计算网关,完美地发挥了“边”与“端” 结合优势&#xff0c…

⾃动化运维利器Ansible-基础

Ansible基础 一、工作原理二、快速入门2.1 测试所有资产的网络连通性2.2 发布文件到被管理节点(资产) 三、资产(被管理节点)3.1 静态资产3.1.1 自定义资产3.1.2 自定义资产的使用3.1.3 资产选择器 四、Ansible Ad-Hoc 命令4.1 模块类型4.1.1 command & shell 模块4.1.2 cop…

SpringBoot实战(三十一)集成iText5,实现RSA签署PDF

目录 一、什么是电子签章?1.1 定义1.2 电子签章的工作原理1.3 电子签章的优势二、准备工作:证书生成、印章生成2.1 证书生成2.2 印章生成三、Java代码实现 RSA 签署 PDF3.1 坐标签署3.2 关键字签署3.3 日期签署3.4 骑缝章签署3.5 文本域签署一、什么是电子签章? 1.1 定义 电…

vue面试题7|[2024-11-14]

问题1:什么是渐进式框架? vue.js router vuex element ...插件 vue.js 渐0 router 渐1 vuex 渐2 vue.js只是一个核心库,比如我再添加一个router或者vuex,不断让项目壮大,就是渐进式框…

【力扣热题100】[Java版] 刷题笔记-169. 多数元素

题目:169. 多数元素 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 解题思路 该题目的核心点是:元素出现…

Dolby TrueHD和Dolby Digital Plus (E-AC-3)编码介绍

文章目录 1. Dolby TrueHD特点总结 2. Dolby Digital Plus (E-AC-3)特点总结 Dolby TrueHD 与 Dolby Digital Plus (E-AC-3) 的对比 Dolby TrueHD和Dolby Digital Plus (E-AC-3) 是两种高级的杜比音频编码格式,常用于蓝光影碟、流媒体、影院等高品质音频传输场景。它…

第三十一天|贪心算法| 56. 合并区间,738.单调递增的数字 , 968.监控二叉树

目录 56. 合并区间 方法1:fff 看方法2:fff优化版 方法3: 738.单调递增的数字 968.监控二叉树(贪心二叉树) 56. 合并区间 判断重叠区间问题,与452和435是一个套路 方法1:fff 看方法2&am…

火车车厢重排问题,C++详解

目录 实验题目 解题思路 1先看缓冲队列队头是否符合要求 2看队头元素是否符合要求 完整代码 运行结果 实验题目 火车车厢重排问题 实验说明:转轨站示意图如下: 火车车厢重排过程如下: 火车车厢重排算法伪代码如下: 解题思路…

算法学习第一弹——C++基础

早上好啊,大佬们。来看看咱们这回学点啥,在前不久刚出完C语言写的PTA中L1的题目,想必大家都不过瘾,感觉那些题都不过如此,所以,为了我们能更好的去处理更难的题目,小白兔决定奋发图强&#xff0…

LabVIEW大数据处理

在物联网、工业4.0和科学实验中,大数据处理需求逐年上升。LabVIEW作为一款图形化编程语言,凭借其强大的数据采集和分析能力,广泛应用于实时数据处理和控制系统中。然而,在面对大数据处理时,LabVIEW也存在一些注意事项。…

AUTOSAR_EXP_ARAComAPI的7章笔记(3)

☞返回总目录 相关总结:AutoSar AP简单多绑定总结 7.3 多绑定 如在 5.4.3 小节中简要讨论的,某个代理类 / 骨架类的不同实例之间的技术传输是不同的,多绑定描述了这种情况的解决方案。多种技术原因都可能导致这种情况出现: 代…