Wordpress一写文章就卡了,网站页面优化方法,东莞长安网站,公司建站一、k8s简介
在部署应用程序的方式上面#xff0c;主要经历了三个阶段#xff1a; 传统部署:互联网早期#xff0c;会直接将应用程序部署在物理机上优点:简单#xff0c;不需要其它技术的参与缺点:不能为应用程序定义资源使用边界#xff0c;很难合理地分配计算资源…一、k8s简介
在部署应用程序的方式上面主要经历了三个阶段 传统部署:互联网早期会直接将应用程序部署在物理机上优点:简单不需要其它技术的参与缺点:不能为应用程序定义资源使用边界很难合理地分配计算资源而且程序之间容易产生影响
虚拟化部署:可以在一台物理机上运行多个虚拟机每个虚拟机都是独立的一个环境
优点:程序环境不会相互产生影响提供了一定程度的安全性
缺点:增加了操作系统浪费了部分资源容器化部署:与虚拟化类似但是共享了操作系统 容器化部署方式给带来很多的便利但是也会出现一些问题 一个容器故障停机了怎么样让另外一个容器立刻启动去替补停机的容器当并发访问量变大的时候怎么样做到横向扩展容器数量
kubenetes简介
Kubernetes 是一个可移植、可扩展的开源平台用于管理容器化的工作负载和服务方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统其服务、支持和工具的使用范围广泛。
二、k8s部署
主机名ip角色docker-harbor.revkarl.org172.25.254.250harbor仓库k8s-master172.25.254.100masterk8s集群控制节点k8s-node1172.25.254.10workerk8s集群工作节点k8s-node2172.25.254.20workerk8s集群工作节点
所有节点关闭selinux和防火墙
systemctl disabled firewalld
systemctl stop firewalld
grubby --update-kernel ALL --args selinux0
reboot
所有节点在每次开启的时候禁用swapon分区
vim /etc/rc.d/rc.local
swapoff /dev/dm-1
chmod x /etc/rc.d/rc.local
所有节点做好dns解析
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.254.10 k8s-node1
172.25.254.20 k8s-node2
172.25.254.100 k8s-master
172.25.254.250 reg.revkarl.org所有节点安装docker
cat /etc/yum.repos.d/docker-ce.repo
[docker]
namedocker
baseurlhttps://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable/
gpgcheck0
dnf install docker-ce -y
在所有的k8s节点创建放置证书的目录
mkdir -p /etc/docker/certs.d/reg.revkarl.org/
把harbor仓库里的证书拷贝给k8s所有节点
ls /data/certs/
revkarl.org.crt revkarl.org.key
scp /data/certs/revkarl.org.crt root172.25.254.100:/etc/docker/certs.d/reg,revkarl.org/ca.crt
启动docker仓库
systemctl enable --now docker
登陆之后查看harbor仓库的认证
docker login reg.revkarl.org
docker info 现在我们就可以安装k8s部署工具了
[rootk8s-master ~]# cat /etc/yum.repos.d/k8s.repo
[k8s]
namek8s
baseurlhttps://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/
gpgcheck0
dnf install kubelet-1.30.0 kubeadm-1.30.0 kubectl-1.30.0 -y
设置kubectl命令补齐功能
dnf install bash-completion -y
echo source (kubectl completion bash) ~/.bashrc
source ~/.bashrc
在所有节点安装cri-docker
dnf install libcgroup-0.41-19.el8.x86_64.rpm \cri-dockerd-0.3.14-3.el8.x86_64.rpm -y
指定网络插件名称以及基础容器镜像
vim /lib/systemd/system/cri-docker.service fd:// --network-plugincni --pod-infra-container-imagereg.revkarl.org/k8s/pause:3.9
systemctl daemon-reload
systemctl start cri-docker
ll /var/run/cri-dockerd.sock
srw-rw---- 1 root docker 0 10月 5 18:03 /var/run/cri-dockerd.sock
在master节点拉取k8s所需镜像
kubeadm config images pull \
--image-repository registry.aliyuncs.com/google_contaniers \
--kubernetes-version v1.30.0 \
--cri-socketunix:///var/run/cri-dockerd.sock
上传镜像到harbor仓库
docker images | awk /google/{ print $1:$2} \
| awk -F / {system(docker tag $0 reg.revkarl.org/k8s/$3)}
docker images | awk /k8s/{system(docker push $1:$2)} 三、集群初始化
启动kubelet服务
systemctl enable --now kubelet
systemctl status kubelet.service 执行初始化命令
kubeadm init --pod-network-cidr10.244.0.0/16 \
--image-repository reg.revkarl.org/k8s \
--kubernetes-version v1.30.0 \
--cri-socketunix:///var/run/cri-dockerd.sock 指定集群配置文件变量
echo export KUBECONFIG/etc/kubernetes/admin.conf ~/.bash_profile
安装flannel网络插件
下载flanne]的yaml部署文件
wget https://github.com/flanne7.io/flannel/releases/latest/download/kube-flannel.yml拉取镜像
docker pull docker.io/flannel/flannel:v0.25.5
docekr docker.io/flannel/flannel-cni-plugin:v1.5.1-flannel1
上传镜像到仓库
docker tag flannel/flannel:v0.25.5reg.timinglee.org/flannel/flannel:v0.25.5
docker push reg.timinglee.org/flannel/flannel:v0.25.5
docker tag flannel/flannel-cni-plugin:v1.5.1-flannel1reg.timinglee.org/flannel/flannel-cni-plugin:v1.5.1-flannel1
docker push reg.timinglee.org/flannel/flannel-cni-plugin:v1.5.1-flanne11
修改镜像下载位置
vim kube-flannel.yml
146: image:reg.timinglee.org/flannel/flannel:v0.25.5
173: image:reg.timinglee.org/flannel/flannel-cni-plugin:v1.5.1-flannel1
184: image:reg.timinglee.org/flannel/flannel:v0.25.5
应用网络插件
kubectl apply -f kube-flannel.yml
加入集群
kubeadm join 172.25.254.100:6443 --token5hwptm.zwn7epa6pvatbpwf--discovery-token-ca-cert-hashsha256:52f1a83b70ffc8744db5570288ab51987ef2b563bf906ba4244a300f61e9db23 --cri-socketunix:///var/run/cri-dockerd.sock
在master节点中查看所有node的状态
kubectl get nodes 所有节点的状态都为ready那么恭喜你装成功了 可以像我这样跑个nginx镜像试试