K8s使用kubeadm搭建测试单master节点案例(含整套部署流程)

简介: K8s使用kubeadm搭建测试单master节点案例(含整套部署流程)

1.准备三台机器


  • 一台master ip:192.168.31.46
  • 二台node ip:192.168.31.47 192.168.31.48 配置要求:

操作系统centos 7

硬件配置:2CPU/2GB内存或更多/30G硬盘

局域网内网络互通

可以访问外网

禁用swap,不然后面会报错


2.在master上操作


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
# 将桥接的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 -y install ntpdate
ntpdate ntp.aliyun.com
# master 添加hosts
cat >> /etc/hosts << EOF
192.168.31.46 master
192.168.31.47 node1
192.168.31.48 node2
EOF


3.在所有节点上安装Docker/kubeadm/kubelet


3.1安装Docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo --no-check-certificate
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable --now docker
cat > /etc/docker/daemon.json << EOF
{
    "registry-mirrors":["http://b9pmyelo.mirror.aliyunces.com"]
}
EOF
# 重启docker 
systemctl restart docker


3.2添加阿里云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=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


3.3安装kubeadm,kubelet和kubectl

由于版本更新频繁,这里指定版本号部署

yum -y install kubelet-1.22.2 kubeadm-1.22.2 kubectl-1.22.2
systemctl enable kubelet
# 更改docker的驱动
vim /etc/docker/daemon.json里加上这句话
"exec-opts": ["native.cgroupdriver=systemd"]
systemctl restart docker
docker info | grep Cgroup


4.部署Kubernetes Master


只在master节点上运行

kubeadm init \
--apiserver-advertise-address=192.168.31.46 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.22.2 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

如果有安装成功的提示,表示安装成功。


image.png


由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云仓库地址

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


5.在子节点上执行


kubeadm join 192.168.31.46:6443 --token ufw0ia.wiaf4vru6t2v9982 \
    --discovery-token-ca-cert-hash sha256:d21a2c79bf368e91927ef3ea68172d29097478918f655b1d0d4ddcc9a155037e

默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,操作如下:

kubeadm token create --print-join-command

在主节点上执行kubectl get nodes,均处于notready组件状态,这里需要在配置一个网络插件。

image.png


6.部署CNI网络插件


默认镜像地址无法访问,sed命令修改为docker hub镜像仓库

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

多等待一会儿后,就会显示为ready

image.png

7.测试kubernetes集群


kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc


image.png

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
18天前
|
Kubernetes 开发工具 Docker
微服务实践k8s与dapr开发部署实验(2)状态管理
微服务实践k8s与dapr开发部署实验(2)状态管理
38 3
微服务实践k8s与dapr开发部署实验(2)状态管理
|
5天前
|
Kubernetes 数据处理 调度
天呐!部署 Kubernetes 模式的 Havenask 集群太震撼了!
【6月更文挑战第11天】Kubernetes 与 Havenask 集群结合,打造高效智能的数据处理解决方案。Kubernetes 如指挥家精准调度资源,Havenask 快速响应查询,简化复杂任务,优化资源管理。通过搭建 Kubernetes 环境并配置 Havenask,实现高可扩展性和容错性,保障服务连续性。开发者因此能专注业务逻辑,享受自动化基础设施管理带来的便利。这项创新技术组合引领未来,开启数据处理新篇章。拥抱技术新时代!
|
8天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的高中信息技术课程在线测试系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的高中信息技术课程在线测试系统附带文章和源代码部署视频讲解等
16 6
|
9天前
|
Java
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
7 0
|
12天前
|
IDE 前端开发 时序数据库
【Docker项目实战】使用Docker部署speedtest-tracker速度测试追踪器
【6月更文挑战第4天】使用Docker部署speedtest-tracker速度测试追踪器
234 0
|
12天前
|
测试技术
软件测试项目式学习三(软件测试原则与基本流程与实际测试用例)
软件测试项目式学习三(软件测试原则与基本流程与实际测试用例)
11 0
|
13天前
|
Kubernetes 容器 Perl
k8s部署seata 报错 没有提供足够的身份验证信息 [ http-nio-7091-exec-2] [ty.JwtAuthenticationEntryPoint] [ commence] [] : Responding with unauthorized error. Message - Full authentication is required to access this resource
Kubernetes pod 在16:12时出现两次错误,错误信息显示需要完整认证才能访问资源。尽管有此错误,但页面可正常访问。附有yaml配置文件的图片。
28 2
|
16天前
|
Kubernetes 负载均衡 应用服务中间件
k8s 二进制安装 优化架构之 部署负载均衡,加入master02
k8s 二进制安装 优化架构之 部署负载均衡,加入master02
|
17天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的在线测试管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的在线测试管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
267 0
|
Kubernetes 开发者 微服务
简化Kubernetes应用部署工具-Helm之Hook
微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。
1576 0