kubernets集群搭建

集群搭建

  • 1.准备工作(所有节点都执行)
    • 1.1配置/etc/hosts文件
    • 1.2关闭防火墙
    • 1.3关闭selinux
    • 1.4关闭交换分区,提升性能
    • 1.5修改机器内核参数
    • 1.6配置时间同步
    • 1.7配置阿里云镜像源
  • 2.安装docker服务(所有节点都执行)
    • 2.1安装docker服务
    • 2.2配置docker镜像加速和驱动
  • 3.安装配置k8s
    • 3.1安装初始化k8s需要的包(所有节点)
    • 3.2kubeadm初始化k8s集群(maste节点)
    • 3.3加入node节点
    • 3.4部署网络插件(master节点执行)
    • 3.5构建应用
    • 3.6镜像拉取中
    • 3.7集群搭建完毕
  • 4.集群测试

IP角色
172.28.247.137master
172.28.247.138node1
172.28.247.139node2

k8s1.23.6版本需要使用对应版本的docker,我这边使用的是20.10.8的docker版本

k8s1.23.6版本需要使用对应版本的calico,我这边使用的是3.24.5的calico版

1.准备工作(所有节点都执行)

1.1配置/etc/hosts文件

先修改主机名
注意:重启生效

hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2

执行以下命令,配置/etc/hosts文件

cat  >>/etc/hosts << EOF
172.28.247.137 k8s-master
172.28.247.138 k8s-node1
172.28.247.139 k8s-node2
EOF# 查看配置文件
[root@k8s-master ~]# cat  /etc/hosts
172.28.247.137 k8s-master
172.28.247.138 k8s-node1
172.28.247.139 k8s-node2

1.2关闭防火墙

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

1.3关闭selinux

# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config

1.4关闭交换分区,提升性能

# 关闭交换分区
swapoff -a
# 注释
sed -ri 's/.*swap.*/#&/' /etc/fstab
或者
vim  /etc/fstab
#/dev/mapper/centos-swap swap                    swap    defaults        0 0

1.5修改机器内核参数

# 修改及其内核参数
cat >> /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF# 加载配置文件
sysctl -p

1.6配置时间同步

# 安装ntp服务器
yum -y install   ntpdate# 同步时间
ntpdate time.windows.com

1.7配置阿里云镜像源

# 配置docker的源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo# 配置k8s的源
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
EOF

2.安装docker服务(所有节点都执行)

2.1安装docker服务

# 安装20.10.8版本的docker 
yum -y  install docker-ce-20.10.8 
# 设置服务开机启动
systemctl start docker && systemctl enable docker.service

2.2配置docker镜像加速和驱动

# 配置镜像加速和驱动
cat >> /etc/docker/daemon.json <<EOF
{
"registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"],
"exec-opts":["native.cgroupdriver=systemd"]
}
EOF# 重启服务
systemctl daemon-reload && systemctl restart docker

3.安装配置k8s

3.1安装初始化k8s需要的包(所有节点)

  • kubeadm:用来初始化k8s集群

  • kubelet:安装在集群所有节点上,用于启动pod

  • kubectl:部署和管理应用,查看各种资源、创建、删除和更新各种组件

# 安装软件包
yum -y install kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6#设置开机自启
systemctl enable kubelet

3.2kubeadm初始化k8s集群(maste节点)

# 初始化k8s集群
# 第一个ip是master的ip
kubeadm init \--apiserver-advertise-address=172.28.247.137 \  --image-repository registry.aliyuncs.com/google_containers \--kubernetes-version=v1.23.6 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16

在这里插入图片描述
上图表示初始化成功!!

3.3加入node节点

在这里插入图片描述

master节点:

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

node节点执行

kubeadm join 172.28.247.137:6443 --token y6q8st.gamnt79122wbodjs \--discovery-token-ca-cert-hash sha256:9ef4266a855545de3837281aff154bdc2704afe385a6c5791c716827c86ac519

在这里插入图片描述

3.4部署网络插件(master节点执行)

# 下载calico.yaml文件
curl -kO https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/calico.yaml
# 修改calico.yaml文件
找到  CALICO_IPV4POOL_CIDR
- name: CALICO_IPV4POOL_CIDRvalue: "10.244.0.0/16"

3.5构建应用

# 构建应用
kubectl apply -f calico.yaml

在这里插入图片描述

3.6镜像拉取中

[root@k8s-master k8s]# kubectl get pod -n kube-system
NAME                                       READY   STATUS     RESTARTS   AGE
calico-kube-controllers-7b8458594b-bt9lf   0/1     Pending    0          15s
calico-node-kvh5n                          0/1     Init:0/3   0          15s
calico-node-rncn4                          0/1     Init:0/3   0          15s
calico-node-wlpkg                          0/1     Init:0/3   0          15s
coredns-6d8c4cb4d-857d4                    0/1     Pending    0          21m
coredns-6d8c4cb4d-t4vpq                    0/1     Pending    0          21m
etcd-k8s-master                            1/1     Running    0          21m
kube-apiserver-k8s-master                  1/1     Running    0          21m
kube-controller-manager-k8s-master         1/1     Running    0          21m
kube-proxy-4hxjs                           1/1     Running    0          21m
kube-proxy-7nbvw                           1/1     Running    0          17m
kube-proxy-8f87g                           1/1     Running    0          17m
kube-scheduler-k8s-master                  1/1     Running    0          21m

3.7集群搭建完毕

[root@k8s-master k8s]# kubectl get pod -n kube-system
NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-7b8458594b-bt9lf   1/1     Running   0          13m
calico-node-kvh5n                          1/1     Running   0          13m
calico-node-rncn4                          1/1     Running   0          13m
calico-node-wlpkg                          1/1     Running   0          13m
coredns-6d8c4cb4d-857d4                    1/1     Running   0          34m
coredns-6d8c4cb4d-t4vpq                    1/1     Running   0          34m
etcd-k8s-master                            1/1     Running   0          34m
kube-apiserver-k8s-master                  1/1     Running   0          34m
kube-controller-manager-k8s-master         1/1     Running   0          34m
kube-proxy-4hxjs                           1/1     Running   0          34m
kube-proxy-7nbvw                           1/1     Running   0          30m
kube-proxy-8f87g                           1/1     Running   0          30m
kube-scheduler-k8s-master                  1/1     Running   0          34m
[root@k8s-master k8s]# kubectl get nodes
NAME         STATUS   ROLES                  AGE   VERSION
k8s-master   Ready    control-plane,master   35m   v1.23.6
k8s-node1    Ready    <none>                 31m   v1.23.6
k8s-node2    Ready    <none>                 31m   v1.23.6

4.集群测试

# 创建nginx服务
[root@k8s-master ~]# kubectl create deployment nginx --image=nginx
deployment.apps/nginx created# 暴露端口
[root@k8s-master ~]# kubectl expose deployment nginx --port=80 --type=NodePort
service/nginx exposed# 查看pod以及暴露的端口
[root@k8s-master ~]# kubectl get pod,svc
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-85b98978db-7pcvd   1/1     Running   0          52sNAME                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP        37m
service/nginx        NodePort    10.103.83.64   <none>        80:30038/TCP   15s

访问
私网访问
在这里插入图片描述

公网访问
注意:云服务器安全组开放端口
在这里插入图片描述

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

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

相关文章

【分布式技术】消息队列Kafka

目录 一、Kafka概述 二、消息队列Kafka的好处 三、消息队列Kafka的两种模式 四、Kafka 1、Kafka 定义 2、Kafka 简介 3、Kafka 的特性 五、Kafka的系统架构 六、实操部署Kafka集群 步骤一&#xff1a;在每一个zookeeper节点上完成kafka部署 ​编辑 步骤二&#xff1a…

【GitHub项目推荐--微软开源的课程(Web开发课程/机器学习课程/物联网课程/数据科学课程)】【转载】

微软在 GitHub 开源了四大课程&#xff0c;面向计算机专业或者入门编程的同学。分别是 Web 开发课程、机器学习课程、物联网课程和数据分析课程。 四大课程在 GitHub 上共斩获 90K 的Star&#xff0c;每一课程包含 20 多小节&#xff0c;完成课程大约需要 12 周。每小节除了视…

如何解决Xshell 连接不上虚拟机Ubuntu?

一、 在终端输入 sudo apt-get install openssh-server 二、 执行如下命令 sudo apt-get install ssh 三、 开启 ssh-server&#xff0c;输入密码 service ssh start 四、 验证&#xff0c;输入 ps -e|grep ssh&#xff0c;看到sshd成功 ps -e|grep ssh五、 连接

【Linux编辑器-vim使用】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、vim的基本概念 二、vim的基本操作 分屏操作&#xff1a; 三、vim正常&#xff08;命令&#xff09;模式命令集 四、vim末行&#xff08;底行&#xff09;模…

【经验分享】MAC系统安装R和Rstudio(保姆级教程)安装下载只需5min

最近换了Macbook的Air电脑&#xff0c;自然要换很多新软件啦&#xff0c;首先需要安装的就是R和Rstudio啦&#xff0c;网上的教程很多很繁琐&#xff0c;为此我特意总结了最简单实用的安装方式: 一、先R后Rstudio 二、R下载 下载网址&#xff1a;https://cran.r-project.org …

shell脚本基础演练

简介 Shell脚本是一种用于自动化执行一系列命令的脚本语言。在Unix和类Unix系统中&#xff0c;常见的Shell包括Bash、Zsh、Sh等。下面我将简要讲解Shell脚本的基本结构和一些常用写法&#xff0c;并附上一些标准的例子。 基础示例 基本结构 #!/bin/bash # 注释: 这是一个简…

什么是ORM思想?

1. ORM概念 ORM&#xff08;Object Relational Mapping&#xff09;对象关系映射模式&#xff0c;是一种技术&#xff0c;解决了面向对象与关系型数据库存互不匹配的现象。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 2. ORM由来 在软件开发的过程中&#xff0c;通常…

力扣279. 完全平方数

动态规划 思路&#xff1a; 假设 dp[i] 为最少组成数 i 的平方数个数&#xff1b;则其上一个状态为 dp[i - j^2] 1&#xff0c;1 为 j^2&#xff1a; 即 i 的最少完全平方数 i - j^2 的最少完全平方数 1&#xff0c;其中 j^2 < i 为最接近 i 的平方数&#xff1b;初始值…

云计算管理-linux

1.权限 基本权限与归属 访问权限 读取&#xff1a;允许查看内容-read r 写入&#xff1a;允许修改内容-write w 可执行&#xff1a;允许运行和切换-excute x 对于文本文件&#xff1a; r读取权限&#xff1a;cat、less、grep、head、tail w写入权…

【BIAI】Lecture 6 - Somatosensory systems

Lecture 6- Somatosensory systems 专业术语 somatosensory system 体感系统 Thermoreceptors 温度感受器 Photoreceptors 光感受器 Chemoreceptoprs 化学感受器 hairy skin 毛发皮肤 glabrous skin 光滑皮肤 sensory receptors 感觉受体 dermal 真皮的 epidermal 表皮的 axon…

PSIM仿真DSP28335ADC功能并使用SCI串口模块输出曲线

在使用PSIM 2022 软件仿真DSP28335单片机时&#xff0c;发现里面还有SCI串口打印模块&#xff0c;在仿真软件里面可以看到串口数据&#xff0c;但是将代码下载到单片机上之后&#xff0c;使用串口助手却看不到任何数据&#xff0c;经过一番探索终于发现&#xff0c;串口不是这样…

C语言或C++通过IShellLinkA创建或解析lnk快捷方式(使用char字符数组)

本例程用到的COM接口有IShellLinkA和IPersistFile。 请注意因为函数参数的类型不为BSTR&#xff0c;所以这两个接口可直接传char *或wchar_t *字符串&#xff0c;不需要提前转化为BSTR类型。 C语言的写法&#xff1a; /* 这个程序只能在C编译器下编译成功, 请确保源文件的扩展…

Linux基本常用命令大全(一)

一、基本命令 1.1 关机和重启 关机 shutdown -h now 立刻关机 shutdown -h 5 5分钟后关机 poweroff 立刻关机 重启 shutdown -r now 立刻重启 shutdown -r 5 5分钟后重启 reboot 立刻重启 1.2 帮助命令 –help命令 shutdown --help&#xff1a; ifconfig --help&#xff1a…

Spring Boot的创建和使用

Spring的诞生是为了简化Java程序开发的&#xff0c;而Spring Boot的诞生是为了简化Spring程序开发的。 目录 Spring Boot 的优点 Spring Boot 项目创建 Spring Boot 目录介绍 Spring Boot 运行 Spring Boot 的优点 快速集成框架&#xff0c;Spring Boot 提供了启动添加依赖…

Java毕业设计-基于ssm的学生社团活动管理系统-第82期

获取源码资料&#xff0c;请移步从戎源码网&#xff1a;从戎源码网_专业的计算机毕业设计网站 项目介绍 基于ssm的学生社团活动管理系统&#xff1a;前端 jsp、jquery、ajax&#xff0c;后端 springmvc、spring、mybaties&#xff0c;角色分为管理员、学生、社团、用户&#…

K8s知识点总结_part2

为什么我们会需要 Pod&#xff1f; 容器的本质是一种特殊的进程&#xff0c;如果映射到系统中&#xff0c;容器镜像就是这个系统里的“.exe”安装包。 那么 Kubernetes 呢&#xff1f;Kubernetes 就是操作系统 在一个真正的操作系统里&#xff0c;进程并不是“孤苦伶仃”地独…

Java SE:面向对象(下)

1. static关键字 静态区的特点&#xff1a;静态区里面的每一样东西都是唯一有且仅有一个的&#xff0c;如此时str1 "abc"即此时静态区里面已经创建了字符串abc并将abc地址赋给str1&#xff0c;后面在进行赋值也不会在静态区开辟一串新的"abc" 1.1 static修…

【超简版,代码可用!】【0基础Python爬虫入门——下载歌曲/视频】

安装第三方模块— requests 完成图片操作后输入&#xff1a;pip install requests 科普&#xff1a; get:公开数据 post:加密 &#xff0c;个人信息 进入某音乐网页&#xff0c;打开开发者工具F12 选择网络&#xff0c;再选择—>媒体——>获取URL【先完成刷新页面】 科…

庞加莱猜想与品牌营销:网络集成化生态系统的力量

在数学界&#xff0c;庞加莱猜想一直是一个令人着迷的问题。而今&#xff0c;这一猜想与品牌营销产生了奇妙的联系。本文将结合庞加莱猜想&#xff0c;探讨品牌如何通过网络集成化生态系统实现低成本的市场推广&#xff0c;唤醒需求侧需求并扩展用户圈层。 首先&#xff0c;庞…

软考14-上午题-编译、解释程序翻译阶段

一、编译、解释程序【回顾】 目的&#xff1a;高级程序设计语言&#xff08;汇编语言、高级语言&#xff09;—【翻译】—>机器语言 1-1、编译方式 将高级语言书写的源程序——>目标程序&#xff08;汇编语言、机器语言&#xff09; 包含的工作阶段&#xff1a;词法分…