RockyLinux部署k8s
一、场景:随着centos8的终结,centos7也将在2024年寿终正寝,所以本文将从centos创始人维护的RockyLinux重新进入BP时代。
二、系统安装
1、下载RockyLinux系统管网下载:Rocky Linux
2、系统安装和centos差不多,本文将通过Promox Virtual进行,Promox的安装请参考:
微服务架构(一)简单的服务器虚拟框架选型及安装_Morik的博客-CSDN博客_微服务架构服务器配置
2.1、系统基本配置2核、4g、双网卡
2.2、选择最小安装、时区上海、网络打开--->配置--->常规--->自动连接、设置root密码直接开始;等待安装完成重启 ip a 查看地址,idea或其他工具远程连接。
三、初始化系统
1、dnf配置
1.1、安装语言
[root@anonymous ~]# dnf install glibc-langpack-en
1.2、替换阿里云源
[root@anonymous ~]# sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/Rocky-*.repo
2、生成缓存、下载常用工具
[root@anonymous ~]# dnf makecache
[root@anonymous ~]# dnf -y install vim bash-completion net-tools gcc wget
3、Docker 安装
3.1、设置docker镜像仓库
[root@anonymous ~]# dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.2、更新dnf软件包索引
[root@anonymous ~]# dnf update
3.3、查看目前官方仓库的 docker 版本。
[root@anonymous ~]# dnf list docker-ce.x86_64 --showduplicates |sort -r
[root@anonymous ~]# dnf remove docker-ce docker-ce-cli containerd.io -y
[root@anonymous ~]# dnf install -y docker-ce-20.10.8 docker-ce-cli-20.10.8 containerd.io-1.4.10 --allowerasing
[root@anonymous ~]# dnf -y remove podman
#修改docker镜像下载地址
[root@anonymous ~]# mkdir -p /etc/docker
[root@anonymous ~]# cat >> /etc/docker/daemon.json << OFF
{"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]
}
OFF
#启动docker并设置开机启动
[root@anonymous ~]# systemctl start docker
[root@anonymous ~]# systemctl enable docker --now
4、关闭swap分区
[root@anonymous ~]# swapoff -a
[root@anonymous ~]# sed -i 's/.*swap.*/#&/' /etc/fstab
5、禁用 SELINUX
[root@anonymous ~]# setenforce 0
[root@anonymous ~]# sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
[root@anonymous ~]# sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
[root@anonymous ~]# sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux
[root@anonymous ~]# sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
6、关闭防火墙和开启启动
[root@anonymous ~]# systemctl stop firewalld.service
[root@anonymous ~]# systemctl disable firewalld.service
7、安装iptables
[root@anonymous network-scripts]# modprobe -- ip_vs
[root@anonymous network-scripts]# modprobe -- ip_vs_rr
[root@anonymous network-scripts]# modprobe -- ip_vs_wrr
[root@anonymous network-scripts]# modprobe -- ip_vs_sh
[root@anonymous network-scripts]# modprobe -- nf_conntrack_ipv4
[root@anonymous network-scripts]# lsmod | grep ip_vs
8、将桥接的IPv4流量传递到iptables的链:
[root@anonymous network-scripts]# cat >>/etc/sysctl.d/k8s.conf<< OFF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
OFF[root@anonymous network-scripts]# modprobe br_netfilter
#查看
[root@anonymous network-scripts]# sysctl -p /etc/sysctl.d/k8s.conf
9、添加k8s软件源信息
[root@anonymous network-scripts]# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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
10、删除已有环境,到此一个干净的系统就初始化完成了(生成vm模板供主节点和工作节点克隆)
#这里连续敲几下回车
[root@anonymous network-scripts]# dnf list kubeadm --showduplicates |sort -r
[root@anonymous network-scripts]# dnf -y remove kubeadm.x86_64 kubectl.x86_64 kubelet.x86_64
11、配置静态ip
[root@anonymous ~]# cat << OFF >/etc/sysconfig/network-scripts/ifcfg-ens19
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens19
UUID=f47b7ac6-e1e3-4ec5-a1b4-855dff9fa008
DEVICE=ens19
ONBOOT=yes
IPADDR=192.168.1.80
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
OFF
12、刷新查看网络配置
[root@anonymous ~]# nmcli c reload
[root@anonymous ~]# nmcli c up ens19
[root@anonymous ~]# nmcli d show
13、设置主机
[root@anonymous ~]# hostnamectl set-hostname k8s-master
[root@anonymous ~]# cat >> /etc/hosts <<OFF
192.168.1.80 k8s-master
192.168.1.81 k8s-node001
OFF
14、安装k8s依赖
[root@anonymous ~]# dnf install -y kubeadm-1.21.5 kubectl-1.21.5 kubelet-1.21.5
15、启动kubelet
[root@anonymous ~]# systemctl daemon-reload
[root@anonymous ~]# systemctl start kubelet.service
[root@anonymous ~]# systemctl enable kubelet.service
[root@anonymous ~]# systemctl status kubelet.service
四、主节点部署
1、初始化k8s,成功后记录红框内的token和hash
[root@anonymous ~]# kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.21.5 --pod-network-cidr=10.10.0.0/16 --service-cidr=10.20.0.0/16 --apiserver-advertise-address=192.168.1.80
2、创建kubectl
[root@anonymous ~]# mkdir -p $HOME/.kube
[root@anonymous ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@anonymous ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@anonymous ~]# source <(kubectl completion bash) && echo 'source <(kubectl completion bash)' >> ~/.bashrc[root@anonymous ~]# kubectl get all -A
#先注释(/etc/kubernetes/manifests/kube-scheduler.yaml、/etc/kubernetes/manifests/kube-controller-manager.yaml):- --port=0 scheduler和controller才能健康
[root@anonymous ~]# kubectl get cs
#查看并修改mode为ipvs
[root@anonymous ~]# kubectl describe cm -n kube-system kube-proxy
[root@anonymous ~]# kubectl edit cm -n kube-system kube-proxy
3、安装kube-flannel网络到此基础网络配置完成(最后做好系统快照)
[root@anonymous ~]# wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#下载yml后在- --kube-subnet-mgr后新增网卡绑定:- --iface=ens19最后部署
[root@anonymous ~]# kubectl apply -f kube-flannel.yml
4、主节点集群可以克隆一台(具体的vip漂移、负载均衡可参照简单的数据库集群系列(六)之keepalived虚拟节点故障自动切换_非生物语言学家的博客-CSDN博客)
[root@anonymous ~]# kubeadm join 192.168.1.80:6443 --config --token buwk6x.qxoj9n2l29s73lxk --discovery-token-ca-cert-hash sha256:0614dcce78b5608932e91f25ffbf8850f6cb0341afd1b58fcf42e7bb884b1ad6
5、安装kubernetes-dashboard
5.1、下载配置文件(下载不成功可以用浏览器直接打开vim进去)
[root@anonymous ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
5.2、修改配置文件在service节点下新增type: NodePort和nodePort: 30000
kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:type: NodePortports:- port: 443targetPort: 8443nodePort: 30000selector:k8s-app: kubernetes-dashboard
5.3、启动用生成的token登录进去
[root@anonymous k8s]# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
[root@anonymous k8s]# source /etc/profile
[root@anonymous k8s]# kubectl create -f recommended.yaml
[root@anonymous k8s]# kubectl get pod -n kubernetes-dashboard
五、工作节点部署
1、clone三 中的vm并配置网络
[root@anonymous ~]# cat << OFF >/etc/sysconfig/network-scripts/ifcfg-ens19
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens19
UUID=f47b7ac6-e1e3-4ec5-a1b4-855dff9fa218
DEVICE=ens19
ONBOOT=yes
IPADDR=192.168.1.81
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
OFF
2、重启网络
[root@anonymous ~]# nmcli c reload
[root@anonymous ~]# nmcli c up ens19
[root@anonymous ~]# nmcli d show
#设置主机名
[root@anonymous ~]# cat >> /etc/hosts <<OFF
192.168.1.80 k8s-master
192.168.1.81 k8s-node001
OFF
[root@anonymous ~]# hostnamectl set-hostname k8s-node001
3、定义node节点名称连接主节点
[root@anonymous ~]# scp root@k8s-master:/root/.kube/config /root/.kube/config
[root@anonymous ~]# kubeadm join 192.168.1.80:6443 --token buwk6x.qxoj9n2l29s73lxk --discovery-token-ca-cert-hash sha256:0614dcce78b5608932e91f25ffbf8850f6cb0341afd1b58fcf42e7bb884b1ad6
[root@anonymous ~]# kubectl label nodes k8s-node001 node-role.kubernetes.io/umf01=
4、去到master主机上查询([root@anonymous k8s]# kubectl get nodes)
RockyLinux部署k8s相关推荐
- 【Kubernetes】如何使用Kubeadm部署K8S集群
一 . 准备机器 本次环境采用华为云ECS弹性云服务器部署(也可以使用VMware) vm01(2V4G): Ubuntu_18.04作为K8S master节点 vm02(1V1G): Ubuntu ...
- rancher k8s docker 关系_通过rancher部署k8s过程实战分享
概述 公司要求把云上一套环境迁移到线下环境.服务以微服务形式运行,在云上用的是cce(K8S的别名),所以移到线下之后,需要自建这些服务.下面分享一下部署过程 一.环境描述 1.两个节点组成一个K8S ...
- rancher k8s docker 关系_【环境搭建】Ubuntu20.04通过rke部署K8S
问题背景 rke大大简化了k8s集群的部署,但是也带来了一个问题:稍有差池就会一脸懵逼,rke的文档还是偏少,此外rke安装过程中的日志信息也是少的可怜,导致Google都不知道从何说起 关于rke( ...
- k8s灰度更新_通过rancher部署k8s过程实战分享
概述 公司要求把云上一套环境迁移到线下环境.服务以微服务形式运行,在云上用的是cce(K8S的别名),所以移到线下之后,需要自建这些服务.下面分享一下部署过程 一.环境描述 1.两个节点组成一个K8S ...
- ansible普通用户部署K8s要点
本篇在不知道root密码的情况下,创建普通用户提权部署K8s 1.创建普通用户,给予sudo权限 2.ansible给予sudo权限,具体配置如下 [defaults] remote_user = t ...
- 【02】Kubernets:使用 kubeadm 部署 K8S 集群
写在前面的话 通过上一节,知道了 K8S 有 Master / Node 组成,但是具体怎么个组成法,就是这一节具体谈的内容.概念性的东西我们会尽量以实验的形式将其复现. 部署 K8S 集群 互联网常 ...
- k8s ubuntu cni_手把手教你使用RKE快速部署K8S集群并部署Rancher HA
作者:杨紫熹 原文链接: https://fs.tn/post/PmaL-uIiQ/ RKE全称为Rancher Kubernetes Engine,是一款经过CNCF认证的开源Kubernetes发 ...
- kubeadm部署K8S集群并使用containerd做容器运行时
kubeadm部署K8S集群并使用containerd做容器运行时(内容全部实战验证有任何问题欢迎留言咨询讨论) 前言 去年12月份,当Kubernetes社区宣布1.20版本之后会逐步弃用docke ...
- jar k8s 自己的 部署_微服务架构 - 离线部署k8s平台并部署测试实例
一般在公司部署或者真实环境部署k8s平台,很有可能是内网环境,也即意味着是无法连接互联网的环境,这时就需要离线部署k8s平台.在此整理离线部署k8s的步骤,分享给大家,有什么不足之处,欢迎指正. 1. ...
最新文章
- R语言使用gganimate包可视化动画点直方图生成过程(dot histogram)、在数据遍历的过程中逐步在箱体内堆叠数据点形成最终的点直方图
- 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(下)
- 【caffe】windows下vs2013+opencv3.2.0+opencv_contrib(包含dnn)+cmake3.8编译与配置
- GetLogicalDrives GetDriveType GetVolumeInformation和FindVolumeClose
- 路由器无线桥接 router wireless bridge
- 《设计模式之禅》--空对象模式
- docker 完成 redis集群搭建
- 灾难性遗忘_谷歌大脑新研究:单一任务强化学习遇瓶颈?「灾难性遗忘」的锅!...
- The Classic IQ Test
- Remove Duplicates from Sorted Array
- Python办公自动化实战 01 | Python优势与自动化思维让你的工作化繁为简
- Previous operation has not finished 并且一直报错cleanup failed to process的解决方法
- 《卓有成效的管理者(The Effective Executive)》读后感
- STM32——用固件库实现流水灯(源码+仿真图)
- 【gym 101991 E】(ACPC 2018) E. Exciting Menus 题解
- [从头读历史] 第289节 神之物语 忒修斯的故事
- python中seaborn是什么_Python-Seaborn绘图(matplotlib补充)
- 深入学习D3JS:d3-color
- 数据库的备份与恢复(完全备份,增量备份)
- 系统盘修复计算机命令,win10系统无法正常开机提示引导文件丢失使用命令修复的方法 无需U盘...