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

  • 一台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. pytorch,numpy两种方法实现nms类间+类内

    类间:也就是不同类之间也进行nms 类内:就是只把同类的bboxes进行nms numpy实现 nms类间+类内: import numpy as np # 类间nms def nms(bboxes, ...

  2. C#的窗体假关闭操作例子 - 开源研究系列文章

    晚上编码的时候,想到了以前编写的窗体关闭的事情,就是带托盘图标的应用,有一个主显示操作窗体,但是主窗体点击关闭按钮的时候,实际上是窗体隐藏而非真正关闭,这个在其它的一些应用程序里有这个效果.于是就想到 ...

  3. 力扣1773(java&python)-统计匹配检索规则的物品数量(简单)

    题目: 给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型.颜色以及名称. 另给你一条由两个字符串 ruleKey 和 r ...

  4. 力扣19(java&python)-删除链表的倒数第 N 个结点(中等)

    题目: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 示例 1: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例2: 输入:head = ...

  5. 力扣50(java)-Pow(x,n)(中等)

    题目: 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即xn ). 示例 1: 输入:x = 2.00000, n = 10输出:1024.00000示例 2: 输入:x = 2.10 ...

  6. HarmonyOS NEXT应用开发之异常处理案例

    介绍 本示例介绍了通过应用事件打点hiAppEvent获取上一次应用异常信息的方法,主要分为应用崩溃.应用卡死以及系统查杀三种. 效果图预览 使用说明: 点击构建应用崩溃事件,3s之后应用退出,然后打 ...

  7. 直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

    简介: 近期,来自 Koordinator 社区的两位技术专家从项目的架构和特性出发,分享了 Koordinator 是如何应对混部场景下的挑战,特别是提升混部场景下工作负载的运行的效率和稳定性,以及 ...

  8. 基于 K8s 的交付难题退退退!| 独家交付秘籍(第三回)

    简介: 经过仔细研究,我们发现秘籍中提到许多帮助解决交付问题的招式,而其中一个让我们印象很深,是关于在原有社区版容器底座 Kubernetes(以下简称 K8s)的基础上,对容器底座进行改进,可更好的 ...

  9. 干货|一文读懂阿里云数据库Autoscaling是如何工作的

    简介: 阿里云数据库实现了其特有的Autosaling能力,该能力由数据库内核.管控及DAS(数据库自治服务)团队共同构建,内核及管控团队提供了数据库Autoscaling的基础能力,DAS则负责性能 ...

  10. [Go] flag package 指南: 命令行参数标记的解析

    flag 是 Golang 的官方包. 支持用法有三种,不同之处是二三两种用法是 Var() 函数可以绑定 flag 到一个变量上. 直接调用指定类型的函数有多种,如 flag.String(), B ...