k8s部署docker

news2024/12/22 17:36:46

1 环境准备

操作系统:centos7.9_x64
Docker:20-ce
K8s:1.23

操作系统最小硬件配置(在vmmare安装时需要选择):2核CPU、2G内存、20G硬盘

k8s-master:192.168.88.191
k8s-node1:192.168.88.192
k8s-node2:192.168.88.193

2 初始化配置

2.1基本配置

先只安装一台centos,完成master和node公共的配置之后,再克隆。

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

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

# 关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久


# 将桥接的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

在这里插入图片描述
在这里插入图片描述

2.2安装 Docker、kubeadm、kubelet

安装docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start docker

在这里插入图片描述
在这里插入图片描述

配置镜像下载加速器:
vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}


systemctl restart docker
docker info                            #查看docker信息,进行确认

在这里插入图片描述
在这里插入图片描述

安装kubeadm、kubelet

添加阿里云软件源:
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:
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
systemctl enable kubelet

在这里插入图片描述
在这里插入图片描述

3 克隆centos,并进行一些配置

在这里插入图片描述

#每个节点分别设置对应主机名
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2


# 主机名成解析 编辑三台服务器的/etc/hosts文件,添加下面内容
192.168.88.191 k8s-master
192.168.88.192 k8s-node1
192.168.88.193 k8s-node2

4 部署k8s-master

只在master结点操作

(其他地方不用动,apiserver-advertise-address更改为master的ip地址)

kubeadm init \
  --apiserver-advertise-address=192.168.88.191 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.23.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=all

apiserver-advertise-address 集群通告地址
image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
kubernetes-version K8s版本,与上面安装的一致
service-cidr 集群内部虚拟网络,Pod统一访问入口
pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致

在这里插入图片描述
输出一个join命令,复制出来。待会在node节点运行,即可加入集群。

#拷贝k8s认证文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config


#查看工作节点:
kubectl get nodes

在这里插入图片描述
由于网络插件还没有部署,所以是还没有准备就绪 NotReady

5 配置k8s的node节点

在node虚拟机进行操作,执行刚才的join命令

kubeadm join 192.168.88.191:6443 --token ijhxys.hmatjclabyxmiq51 \
	--discovery-token-ca-cert-hash sha256:a35d9ecd944259950a886132e8182a943fcc2ae6989f092639415efd5867cff5 

在这里插入图片描述
中途如果出现问题,想要重新加入,先执行(kubeadm reset)
在这里插入图片描述

默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,在master可以直接使用命令快捷生成:

kubeadm token create --print-join-command

在这里插入图片描述

6 部署容器网络

(可能需要科学上网)

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

等待它安装完毕 发现已经是 集群的状态已经是Ready

在这里插入图片描述

7 集群测试(部署应用)

#创建一个nginx服务
kubectl create deployment nginx  --image=nginx:1.14-alpine

#暴露端口
kubectl expose deploy nginx  --port=80 --target-port=80  --type=NodePort

#查看服务
kubectl get pod,svc

在这里插入图片描述

在浏览器中访问http://NodeIP:Port,其中NodeIP可以是任意一个node节点的IP地址,比如192.168.88.191:30162,192.168.88.192:30162,或者192.168.88.193:30162。也可以在dashboard中查看Pod的状态

在这里插入图片描述
在这里插入图片描述
当部署好k8s和docker之后,就可以部署docker仓库里的镜像了。

将自己的服务制作成docker镜像

8 部署Dashboard(实现资源可视化管理)

#下载dashboard文件
curl -o kubernetes-dashboard.yaml https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml

若下载不了:https://pan.baidu.com/s/1-tEablkFTrMC-N9-8T7rrA 提取码:8888

#安装
kubectl apply -f kubernetes-dashboard.yaml

#查看服务被分配到哪个节点上
kubectl get pods -n kube-system -o wide

在这里插入图片描述
服务被分配到了k8s-node1,对外端口为nodePort:31080,端口配置文件里写死的

https://192.168.88.191:31080
在这里插入图片描述

kubectl get secret -n kube-system|grep kubernetes-dashboard-token 

# 根据自己情况输入命令 
kubectl describe secret kubernetes-dashboard-token-x8nlm -n kube-system

在这里插入图片描述
复制token登录即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

chatgpt赋能python:Python冒泡排序算法详解

Python冒泡排序算法详解 介绍 冒泡排序是一种简单但相对较慢的排序算法。这个算法会重复地遍历要排序的数列&#xff0c;每次比较两个元素&#xff0c;如果它们的顺序错误就交换它们的位置&#xff0c;直到没有任何一对元素需要交换为止。这个算法由于排序过程中最大元素就像…

怎么用Excel VBA写一个excel批量合并的程序?

您可以按照以下VBA代码来实现把同一路径上的所有工作簿合并到同一个工作簿中&#xff1a; VBA Option Explicit Sub MergeWorkbooks() Dim path As String, fileName As String, sheet As Worksheet Dim targetWorkbook As Workbook, sourceWorkbook As Workbook Dim workshe…

建立可重复使用的自动测试过程

建立可重复使用的自动测试过程 在软件开发领域&#xff0c;自动化测试已经成为必不可少的一部分&#xff0c;它可以提高软件产品的质量、减少错误率、加快测试时间。但是&#xff0c;为了让自动测试过程更加高效和可重复使用&#xff0c;需要建立一套稳定的自动化测试框架。 自…

ES6: 模板字符串和箭头函数的基本使用

前言 本文主要介绍了ES6中模板字符串和箭头函数的基本使用 一、模板字符串 1、基本介绍 由反引号(在键盘Esc键的下面&#xff09;圈住的字符串即模板字符串举例&#xff1a; //普通字符串 const namehello console.log(name)//模板字符串 const name1world console.log(na…

前端js实现将数组某一项符合条件的对象,放到首位

哈喽 大家好啊 在日常前端开发需求中&#xff0c;总是会遇到开发数组&#xff0c;将某一项对象值&#xff0c;放到首位&#xff0c;让用户更好的去选择&#xff0c;比如省会城市优先等 我做的案例是需要将地区中的四川放到首位 以下是我的代码&#xff1a; 简单说明下思路&a…

蓝桥杯单片机PCF8591芯片ADC与DAC运行冲突解决

单片机型号&#xff1a;STC15F2K60S2 目录 文章附上工程下载地址&#xff1a; 在进行ADC与DAC测试时发现了如下冲突&#xff1a; 实验问题发现&#xff1a; 解决方案&#xff1a; 文章附上工程下载地址&#xff1a; https://download.csdn.net/download/qq_64257614/87854…

OpenWrt 安装“Alist 文件列表”挂载云盘

警告天翼云盘上传受限每天只有2GB 警告天翼云盘上传受限每天只有2GB 警告天翼云盘上传受限每天只有2GB 前言&#xff08;背景故事&#xff0c;没有干货&#xff09; 此前一直在用“阿里云盘-WebDAV”&#xff0c;用起来也挺好非常的方便&#xff0c;直到最近接触到“天翼云盘…

动态调整xxl_job下次执行时间

项目场景&#xff1a; 目前项目引入了 xxl-job 来跑定时任务&#xff0c;但是存在一个问题&#xff0c;项目执行结束的时间不固定&#xff0c;有峰值&#xff0c;在高峰期的时候会出现长阻塞一直排队等待&#xff0c;如图&#xff1a; 问题描述 需要做一种策略来解决长阻塞问…

区块链理财源码【互联网畜牧业养牛平台】带积分商城+抽奖+会员特权【亲测】

源码简介&#xff1a; 互联网畜牧业的养牛平台&#xff0c;非常火的区块链农业应用&#xff0c;是养殖业元宇宙的一种理财商业模式&#xff0c;农业类的其实都可以借鉴这种思路。当然了&#xff0c;玩法比较多样&#xff0c;不要做违法的事情就行。 代码已经简单亲测了一下&a…

linuxOPS基础_linux文本文件查看及统计

vi/vim vim文档编辑操作太多了,可以看这篇单独介绍vim的文章>https://blog.csdn.net/weixin_44368963/article/details/130963920 cat查看文件 命令&#xff1a;cat 作用&#xff1a;查看文件内容 语法&#xff1a;#cat 文件名称 ​ #cat 文件1 文件2 > 文件3 **特别注…

docker入门(1)----服务/镜像/容器/数据卷相关命令

安装 官网安装app命令行安装&#xff08;但是没有图形界面app&#xff09;brew install docker 架构 镜像&#xff08;Image&#xff09;&#xff1a;Docker 镜像&#xff08;Image&#xff09;&#xff0c;就相当于是一个 root 文件系统。比如官方镜像ubuntu:16.04 就包含了…

chatgpt赋能python:Python内置排序:快速高效的数据处理方式

Python内置排序&#xff1a;快速高效的数据处理方式 作为一种非常流行的编程语言&#xff0c;Python提供了很多高效、易于使用的内置功能&#xff0c;其中之一就是排序函数。通过使用内置的排序函数&#xff0c;Python工程师可以快速高效地处理各种不同类型的数据&#xff0c;…

什么是DAS/SAN/NAS

先上图 DAS DAS(Direct-attached Storage) 直连存储&#xff0c;这种存储设备通常是一个磁盘阵列柜&#xff0c;里面有多块磁盘&#xff0c;但不带RAID功能。 它与服务器主机之间的连接通常采用SCSI或者FC连接。DAS只能连接一台服务器&#xff0c;其它服务器无法共享该存储。 …

Redisson

文章目录 Redisson背景简介使用引入依赖配置类源代码 Redisson 背景 基于Redis(setnx)实现的分布式锁存在以下几个问题&#xff1a; 不可重入&#xff1a;同一个线程无法多次获取同一把锁 不可重试&#xff1a;获取锁只尝试一次就返回false&#xff0c;没有重试机制 超时释…

云服务器+minio+PicGo+Typora搭建个人图床实现typora鼠标右击上传图片。

搭建图床 服务器配置docker安装minio安装配置docker安装minio配置minio picgo配置下载picgopicgo配置去插件市场下载&#xff0c;minio配置 typora配置安装破解设置上传服务 服务器配置 本人用的是阿里云的轻量型云服务器&#xff0c;centos7.6&#xff0c;没有服务器的可以自…

让文物“活”起来,火山引擎视频云三维重建技术揭秘

动手点关注 干货不迷路 中国历史悠久&#xff0c;文化底蕴深厚&#xff0c;文物数目众多&#xff0c;文物作为前人智慧的结晶&#xff0c;其文献价值不言而喻。古籍是记录中华文明的重要载体&#xff0c;也是流传至今的宝贵文化遗产&#xff0c;文物保护也是一项长期重要的基础…

OpenAI最新研究Let's verify step-by-step,过程胜于结果!

深度学习自然语言处理 原创作者&#xff1a;Winni OpenAI最新研究 <Let’s verify step-by-step> 于昨天发布&#xff0c;引起了广泛关注。这个想法非常简单&#xff0c;可以用一句话来概括&#xff1a; 对于复杂的逐步推理问题&#xff0c;我们在每个步骤都给予奖励&…

用GANs来做数据增强

适用于只有很少样本的情况。 即使是不完美的合成数据也可以提高分类器的性能。 生成对抗网络(Generative adversarial networks&#xff0c;简称GANs)由Ian Goodfellow于2014年推出&#xff0c;近年来成为机器学习研究中非常活跃的话题。GAN是一种无监督生成模型&#xff0c;它…

光栅尺磁栅尺编码器AB信号输入4倍频脉冲计数器,Modbus RTU模块

IBF153远程I/O模块&#xff0c;可以用来测量1路光栅尺磁栅尺编码器信号。 信号输入 1路光栅尺磁栅尺编码器信号输入&#xff0c;可接NPN和PNP信号&#xff0c;通过命令设置输入类型。 通讯协议 通讯接口&#xff1a; 1路标准的RS-485通讯接口。 通讯协议&#xff1a;支持两…

一篇文章搞定《Android嵌套滑动》

一篇文章搞定《Android嵌套滑动》 前言嵌套滑动冲突种类产生原因1、外部与内部滑动方向不一致2、外部与内部滑动方向一致3、多种情况下的嵌套&#xff08;电商首页&#xff09; 解决嵌套滑动的方法1、外部拦截法2、内部拦截法3、现有API框架 外部与内部滑动方向不一致1、ViewPa…