服务器要求(三台都要操作)

  • 一台master两台node
  • 能连外网
  • 关闭防火墙
  • 关闭selinux
  • 设置主机名,域名解析
  • 关闭swap(记得关完之后重启)
swapoff -a //临时关闭
vim /etc/fstab //把swap分区挂载部分注释掉
  • 将桥接的ipv4流量传递到iptables上,修改linux内核参数,添加网桥过滤和地址转发功能
[root@master ~]# cat /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1 [root@master ~]# sysctl -p
[root@master ~]# modprobe br_netfilter
[root@master ~]#lsmod |grep br_netfil
  • 时间同步
  • 安装docker-ce(拉取阿里云docker镜像源)
wget  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 配置docker默认
[root@master docker]# cat daemon.json
{
"registry-mirrors": ["https://n5jclonh.mirror.aliyuncs.com"],
"insecure-registries": ["10.104.43.33:8858"], //配置私有仓库 此处ip地址为master节点的ip
"exec-opts": ["native.cgroupdriver=systemd"] //docker在默认情况下使用cgroupdiver为cgroupfs,而kubernetes推荐使用systemd来代替cgroupfs,所以需要修改配置文件
}
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
- 安装kubeadm、kubelet、kubectl
- 配置yum源
```
[root@master yum.repos.d] # cat k8s.repo
[kubernetes]
name=kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.pg
//yum仓库的配置文件一定要顶格写
```
- 安装kubelet kubeadm kubectl
```
yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
```
- 设置kubelet开机启动
```
systemctl enable kubelet
```
  • 初始化master
[root@master ~]# kubeadm init --apiserver-advertise-address=10.104.43.33(master的ip) --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(划分pod网段)

- 显示successfully 说明格式化成功
- 执行第二个红色方框内的三条命令
- 最后一个方框是node节点加入的密钥
- 如果,初始化的时候清屏不好找,那么可以使用命令查看token,如果没有过期,那么就可以直接使用,如果过期了,那么需要重新获取token'kubeadm token create'
[root@master docker]# kubeadm  token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
2manw0.vf01yr2xtk0iz80i 23h 2024-05-07T10:35:40Z authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token
[root@master docker]#
  • 加入master节点
kubeadm join 10.104.43.33:6443 --token 2manw0.vf01yr2xtk0iz80i \
--discovery-token-ca-cert-hash sha256:a88db866fe9a52f54b00855fa50d0424acf031f233c6159c803d799abb4be95f
//
  • master节点查看节点
[root@master docker]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master NotReady control-plane,master 37m v1.23.6
node1 NotReady <none> 2m16s v1.23.6
node2 NotReady <none> 12s v1.23.6
[root@master docker]# kubectl get no
NAME STATUS ROLES AGE VERSION
master NotReady control-plane,master 41m v1.23.6
node1 NotReady <none> 6m54s v1.23.6
node2 NotReady <none> 4m50s v1.23.6
[root@master docker]#
//get nodes == get no
  • 部署CNI网络插件
  • 获取组件状态
[root@master docker]# kubectl  get componentstatus
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
[root@master docker]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
scheduler Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
[root@master docker]#
  • 查看指定pod的状态
[root@master docker]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-6d8c4cb4d-z8lxv 0/1 //没有下载成功 Pending 0 46m
coredns-6d8c4cb4d-z8wl2 0/1 //没有下载成功 Pending 0 46m
etcd-master 1/1 Running 0 46m
kube-apiserver-master 1/1 Running 0 46m
kube-controller-manager-master 1/1 Running 0 46m
kube-proxy-4rw59 1/1 Running 0 9m19s
kube-proxy-5p8ct 1/1 Running 0 46m
kube-proxy-6hdfp 1/1 Running 0 11m
kube-scheduler-master 1/1 Running 0 46m

notready的状态,是因为缺少网络插件,所以需要安装网络插件

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
[root@master k8s]# kubectl get po -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-6d8c4cb4d-z8lxv 1/1 Running 0 75m
coredns-6d8c4cb4d-z8wl2 1/1 Running 0 75m
etcd-master 1/1 Running 0 75m
kube-apiserver-master 1/1 Running 0 75m
kube-controller-manager-master 1/1 Running 0 75m
kube-proxy-4rw59 1/1 Running 0 38m
kube-proxy-5p8ct 1/1 Running 0 75m
kube-proxy-6hdfp 1/1 Running 0 40m
kube-scheduler-master 1/1 Running 0 75m
[root@master k8s]#

例子

[root@master k8s]#  kubectl create deployment nginx --image=nginx
deployment.apps/nginx created
[root@master k8s]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-85b98978db-pmrwh 1/1 Running 0 14s
[root@master k8s]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 78m
[root@master k8s]# kubectl get pods,svc
NAME READY STATUS RESTARTS AGE
pod/nginx-85b98978db-pmrwh 1/1 Running 0 29s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 78m
[root@master k8s]# kubectl expose deployment nginx --port=80 --type=NodePort
service/nginx exposed
[root@master k8s]# kubectl get pods,svc
NAME READY STATUS RESTARTS AGE
pod/nginx-85b98978db-pmrwh 1/1 Running 0 2m12s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 80m
service/nginx NodePort 10.105.223.172 <none> 80:30663/TCP 6s
[root@master k8s]# curl http://localhost:30663
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p> <p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@master k8s]#

k8s——搭建集群环境的更多相关文章

  1. Hadoop化繁为简-从安装Linux到搭建集群环境

    简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce.近年,随着大数据.云计算.物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必 ...

  2. Hadoop化繁为简(一)-从安装Linux到搭建集群环境

    简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce.近年,随着大数据.云计算.物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必 ...

  3. k8S 搭建集群

    k8S 搭建集群1:修改主机名称hostnamectl --static set-hostname masterhostnamectl --static set-hostname node1hostn ...

  4. druid 搭建集群环境

    下载druid 下载地址 http://static.druid.io/artifacts/releases/druid-services-0.6.145-bin.tar.gz 解压 tar -zxv ...

  5. 基于redis 3.x搭建集群环境

    由于我团队开发的在线坐席系统,即将面对线上每周3000W的下行投放客户,产品的咨询量可能会很大,基于前期,200W的投放时,前10分钟,大概800问题量,平均一个客户大概8个问题,也就是说每分钟10个 ...

  6. linux下安装 zookeeper-3.4.9并搭建集群环境

    本文主要记录作者在实践过程中实现在centos7环境下安装zookeeper并搭建集群的详细步骤,关于zookeeper本文将不做详细介绍,安装步骤详情如下: 前提准备:3台linux服务器(因为zo ...

  7. Kubernetes--用kubeadm搭建集群环境

    架构 k8s的组件架构图 OCI (Open Container Initiative) 开放容器标准.是一个轻量级,开放的治理结构(项目),在 Linux 基金会的支持下成立,致力于围绕容器格式和运 ...

  8. 记录nginx 搭建集群环境踏过的坑

    因为生产环境做了负载均衡,为了尽可能跟线上环境一致,所以想在本地也搭集群,这样测试更靠谱.首先就想到nginx 这货,搭个简单的web 服务器实在太简单了. nginx 这玩意11年简单玩过,那是版本 ...

  9. Arcgis Server 10.4.1 搭建集群环境

    1.准备工作 Arcgis Server 10.4.1  以及许可一枚 共享存储(通过UNC路径访问,如"\\server1\arcgisserver\") 服务器两台(虚拟机也可 ...

  10. hadoop问题锦集(一)-搭建集群环境时的常见问题

    1.没有主机的路由 1.namenode与datanode之间ping不通了 2.防火墙得关闭: ufw status ufw disabled 2. ssh localhost ssh:connec ...

随机推荐

  1. 如何基于香橙派AIpro对视频/图像数据进行预处理

    本文分享自华为云社区<如何基于香橙派AIpro对视频/图像数据进行预处理>,作者: 昇腾CANN. 受网络结构和训练方式等因素的影响,绝大多数神经网络模型对输入数据都有格式上的限制.在计算 ...

  2. 高效生产管理:选择顺通鞋业ERP系统派单的理由

    显然,传统的生产管理模式已经难以满足现代企业的需求,因此选择一款适合自身业务特点的生产管理软件成为了企业的当务之急.顺通鞋业ERP系统作为一款功能强大的生产管理软件,凭借其出色的派单功能,正逐渐成为众 ...

  3. 【走进RDS】之SQL Server性能诊断案例分析

    简介: 数据库性能诊断不仅对其数据库技能要求较高,而且需要大量的前期准备工作,如收集各种性能基线.性能指标和慢SQL日志等,尤其是面对多数据库性能调优时,往往事倍功半. 客户的困扰 前几天某程序员小王 ...

  4. 阿里云图数据库GDB V3引擎发布,加速开启“图智”未来

    ​简介:无论是学术界还是产业界,都对图数据库有比较高的预期.Gartner发布的<2021年十大数据和分析技术趋势>中提到:"到2025年图技术在数据和分析创新中的占比将从202 ...

  5. Hologres如何支持超高基数UV计算(基于roaringbitmap实现)

    简介: 本文将会介绍Hologres基于roaringbitmap实现超高基数的UV计算 RoaringBitmap是一种压缩位图索引,RoaringBitmap自身的数据压缩和去重特性十分适合对于大 ...

  6. [Go] go build 减小二进制文件大小的几种方式

    第一种 是去除不需要的调试信息: go build -ldflags "-s -w" main.go 实测 19M 减小为 15M,幅度 2% 第二种 压缩 UPX: the Ul ...

  7. [PHP] 浅谈 Laravel Scout 的存在意义

    注:Laravel Scout 是官方支持的对框架模型数据进行全文检索功能的扩展包. Laravel 的 Scout 与 Eloquent ORM 进行了深度集成,不用开发者再自己进行代码侵入了. L ...

  8. 微信小程序支付实现流程

    基本流程 用户操作流程 小程序流程 整体支付流程 代码实现 创建订单 创建订单,主要是前端将订单的信息提交到后端.但是在创建订单之前还有一些准备工作要做: 获取用户数据GetUserInfo 获取用户 ...

  9. 云原生最佳实践系列 6:MSE 云原生网关使用 JWT 进行认证鉴权

    01 方案概述 MSE 网关可以为后端服务提供转发路由能力,在此基础上,一些敏感的后端服务需要特定认证授权的用户才能够访问.MSE 云原生网关致力于提供给云上用户体系化的安全解决方案,其中 JWT 认 ...

  10. python教程6.4-json序列化

    序列化:dumps,编码,将python类型转成json对象 反序列化:loads,解码,将json对象转成python对象 pickle 模块提供了四个功能:dumps.loads.dump.loa ...