k8s——搭建集群环境
服务器要求(三台都要操作)
- 一台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——搭建集群环境的更多相关文章
- Hadoop化繁为简-从安装Linux到搭建集群环境
		简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce.近年,随着大数据.云计算.物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必 ... 
- Hadoop化繁为简(一)-从安装Linux到搭建集群环境
		简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce.近年,随着大数据.云计算.物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必 ... 
- k8S 搭建集群
		k8S 搭建集群1:修改主机名称hostnamectl --static set-hostname masterhostnamectl --static set-hostname node1hostn ... 
- druid 搭建集群环境
		下载druid 下载地址 http://static.druid.io/artifacts/releases/druid-services-0.6.145-bin.tar.gz 解压 tar -zxv ... 
- 基于redis 3.x搭建集群环境
		由于我团队开发的在线坐席系统,即将面对线上每周3000W的下行投放客户,产品的咨询量可能会很大,基于前期,200W的投放时,前10分钟,大概800问题量,平均一个客户大概8个问题,也就是说每分钟10个 ... 
- linux下安装 zookeeper-3.4.9并搭建集群环境
		本文主要记录作者在实践过程中实现在centos7环境下安装zookeeper并搭建集群的详细步骤,关于zookeeper本文将不做详细介绍,安装步骤详情如下: 前提准备:3台linux服务器(因为zo ... 
- Kubernetes--用kubeadm搭建集群环境
		架构 k8s的组件架构图 OCI (Open Container Initiative) 开放容器标准.是一个轻量级,开放的治理结构(项目),在 Linux 基金会的支持下成立,致力于围绕容器格式和运 ... 
- 记录nginx 搭建集群环境踏过的坑
		因为生产环境做了负载均衡,为了尽可能跟线上环境一致,所以想在本地也搭集群,这样测试更靠谱.首先就想到nginx 这货,搭个简单的web 服务器实在太简单了. nginx 这玩意11年简单玩过,那是版本 ... 
- Arcgis Server 10.4.1 搭建集群环境
		1.准备工作 Arcgis Server 10.4.1 以及许可一枚 共享存储(通过UNC路径访问,如"\\server1\arcgisserver\") 服务器两台(虚拟机也可 ... 
- hadoop问题锦集(一)-搭建集群环境时的常见问题
		1.没有主机的路由 1.namenode与datanode之间ping不通了 2.防火墙得关闭: ufw status ufw disabled 2. ssh localhost ssh:connec ... 
随机推荐
- 如何将传统 Web 框架迁移部署到 Serverless 架构?
			简介: 与其说 Serverless 架构是一个新的概念,不如说它是一种全新的思路,一种新的编程范式. 与其说 Serverless 架构是一个新的概念,不如说它是一种全新的思路,一种新的编程范式. ... 
- 入门即享受!coolbpf 硬核提升 BPF 开发效率 | 龙蜥技术
			简介: 干货必备!何为享受式开发? 编者按:BPF 技术还在如火如荼的发展着,本文先通过对 BPF 知识的介绍,带领大家入门 BPF,然后介绍 coolbpf 的远程编译(原名 LCC,LibbpfC ... 
- 【USENIX ATC】支持异构GPU集群的超大规模模型的高效的分布式训练框架Whale
			简介: 高效大模型训练框架Whale(EPL)入选USENIX ATC 作者:张杰.贾贤艳 近日,阿里云机器学习PAI关于深度学习模型高效的分布式训练框架的论文< Whale: Efficien ... 
- 详解 Flink 容器化环境下的 OOM Killed
			简介: 本文将解析 JVM 和 Flink 的内存模型,并总结在工作中遇到和在社区交流中了解到的造成 Flink 内存使用超出容器限制的常见原因.由于 Flink 内存使用与用户代码.部署环境.各种依 ... 
- CPU静默数据错误:存储系统数据不丢不错的设计思考
			简介: 对于数据存储系统来说,保障数据不丢不错是底线,也是数据存储系统最难的部分.据统计,丢失数据中心10天的企业,93%会在1年内破产.那么如果想要做到数据不丢不错,我们可以采取怎样的措施呢? 作者 ... 
- Dapr 在阿里云原生的实践
			简介: Faas 场景下,比较吸引用户的是成本和研发效率,成本主要通过按需分配和极致的弹性效率来达成.而应用开发者期望通过 FaaS 提供多语言的编程环境,提升研发效率,包括启动时间.发布时间.开发的 ... 
- dotnet 警惕 async void 线程顶层异常
			在应用程序设计里面,不单是 dotnet 应用程序,绝大部分都会遵循让应用在出现未处理异常状态时终结的原则.在 dotnet 应用里面,如果一个线程顶层出现未捕获异常,则应用进程将会被认为出现异常状态 ... 
- win10 uwp 选择文本转语音的机器人
			在 UWP 里,可以非常方便将某个文本转换为音频语音,转换时,将会根据输入的内容以及本机所安装的语言库选择一位机器人帮忙将输入的文本转换为语音.本文来告诉大家如何切换文本转语音的机器人,例如从默认的女 ... 
- Win10下小米路由器4A百兆版刷Openwrt固件【图片详细版】
			将原来的小米路由器换成了华为,早就听闻刷软路由可以实现去广告,解锁灰色歌单等诸多骚操作.就来榨取这个小米4A的剩余价值来着的. 注意 1. 必须使用路由模式,中继模式是打不开telnet的 更新固件 ... 
- SAP集成技术(九)集成能力中心(ICC)
			本文链接:https://www.cnblogs.com/hhelibeb/p/17867473.html 内容摘录自<SAP Interface Management Guide>. 定 ... 
