一般做网站要多少钱,惠州seo网站推广,校园推广是什么工作,苏州网站设计公司兴田德润怎么样openEuler23操作系统安装
服务器搭建环境随手记 文章目录 openEuler23操作系统安装前言#xff1a;一、前期准备#xff08;所有节点#xff09;1.1所有节点#xff0c;关闭防火墙规则#xff0c;关闭selinux#xff0c;关闭swap交换#xff0c;打通所有服务器网络一、前期准备所有节点1.1所有节点关闭防火墙规则关闭selinux关闭swap交换打通所有服务器网络进行ping测试1.1.1关闭防火墙1.1.2关闭selinux增强机制1.1.3配置iptables的ACCEPT规则1.1.4关闭swap 1.2所有节点修改各个主机名并写入所有服务器的hosts中1.2.1所有节点给hosts文件并增加ip映射 1.3所有节点设置系统参数调整内核参数将桥接的 IPV4 流量传递到 iptables 链1.4所有节点安装Docker1.4.1导入 Docker 的软件源 GPG 签名密钥以确保下载的软件包真实可信1.4.2设置镜像源1.4.3安装docker1.4.4设置系统管理docker命令1.4.5重新加载服务配置文件并启动docker 1.5所有节点配置k8s镜像源1.6所有节点安装kubeadmkubelet和kubectl 二、master节点操作master节点2.1初始化master节点2.2根据日志提示执行以下命令可使用kubectl管理工具 三、node节点操作所有node节点3.1kube join将node节点加入k8s集群 四、安装部署网络插件master节点上4.1calico网络插件4.1.1部署方式 五、检查各节点健康状态 前言
kubernetes(k8s)是Google开源的容器集群管理系统谷歌内部:Borg。在Docker技术的基础上为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能提高了大规模容器集群管理的便捷性。 Kubernetes是一个完备的分布式系统支撑平台具有完备的集群管理能力多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。同时Kubernetes提供完善的管理工具涵盖了包括开发、部署测试、运维监控在内的各个环节。
服务器环境
在所有节点上安装Docker和kubeadm 部署Kubernetes Master 部署容器网络插件 部署 Kubernetes Node将节点加入Kubernetes集群中
搭建一主一从集群 服务器列表 服务器类型 IP地址
master192.168.0.185node-1192.168.0.56
一、前期准备所有节点
1.1所有节点关闭防火墙规则关闭selinux关闭swap交换打通所有服务器网络进行ping测试
全部的服务器都执行以下服务器
1.1.1关闭防火墙
systemctl stop firewalld
#关闭防火墙systemctl disable firewalld
#禁止防火墙启动1.1.2关闭selinux增强机制
setenforce 0
#关闭selinuxsed -i s/^SELINUXenforcing$/SELINUXpermissive/ /etc/selinux/config
#永久关闭selinux
1.1.3配置iptables的ACCEPT规则
iptables -F iptables -t nat -F iptables -t mangle -F iptables -X1.1.4关闭swap
swapoff -a
#交换分区必须要关闭sed -ri s/.*swap.*/#/ /etc/fstab
#永久关闭swap分区符号在sed命令中代表上次匹配的结果1.2所有节点修改各个主机名并写入所有服务器的hosts中
hostnamectl set-hostname master
#修改主机名hostnamectl set-hostname node-1bash
#每个节点修改完后记得刷新重启加载1.2.1所有节点给hosts文件并增加ip映射
cat /etc/hosts EOF
10.168.9.184 master
10.168.9.183 node-1
EOF
#这里ip必须和前面修改的主机名一致1.3所有节点设置系统参数调整内核参数将桥接的 IPV4 流量传递到 iptables 链
#调整内核参数cat /etc/sysctl.d/kubernetes.conf EOF
#开启网桥模式可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables1
net.bridge.bridge-nf-call-iptables1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv61
net.ipv4.ip_forward1
EOFsysctl --system #加载参数1.4所有节点安装Docker
1.4.1导入 Docker 的软件源 GPG 签名密钥以确保下载的软件包真实可信
sudo rpm --import https://download.docker.com/linux/centos/gpg #安装依赖1.4.2设置镜像源
sudo tee /etc/yum.repos.d/docker.repo -EOF
[docker-ce-stable]
nameDocker CE Stable - $basearch
baseurlhttps://download.docker.com/linux/centos/7/$basearch/stable
enabled1
gpgcheck1
gpgkeyhttps://download.docker.com/linux/centos/gpg
EOF
1.4.3安装docker
yum install -y docker-ce docker-ce-cli containerd.io
#安装docker1.4.4设置系统管理docker命令
cat /etc/docker/daemon.json EOF
{exec-opts: [native.cgroupdriversystemd],log-driver: json-file,log-opts: {max-size: 100m}
}
EOF
#使用Systemd管理的Cgroup来进行资源控制与管理因为相对Cgroupfs而言Systemd限制CPU、内存等资源更加简单和成熟稳定。
#日志使用json-file格式类型存储大小为100M保存在/var/log/containers目录下方便ELK等日志系统收集和管理日志。1.4.5重新加载服务配置文件并启动docker
systemctl daemon-reload
#重新加载某个服务的配置文件如果新安装了一个服务归属于 systemctl 管理要是新服务的服务程序配置文件生效需重新加载上方已经让docker归属systemctl管理了。systemctl restart docker.service
#重启docker
systemctl enable docker.service
#设置开机自启
docker info | grep Cgroup Driver
#显示Cgroup Driver: system为正确1.5所有节点配置k8s镜像源
cat /etc/yum.repos.d/kubernetes.repo EOF
[kubernetes]
nameKubernetes
baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled1
gpgcheck0
repo_gpgcheck0
gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
#定义kubernetes源1.6所有节点安装kubeadmkubelet和kubectl
yum install -y kubelet-1.21.3 kubeadm-1.21.3 kubectl-1.21.3systemctl enable kubelet.service #开机自启kubeletsystemctl start kubelet.service #启动#K8S通过kubeadm安装出来以后都是以Pod方式存在即底层是以容器方式运行所以kubelet必须设置开机自启二、master节点操作master节点
2.1初始化master节点
官网参考 https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
kubeadm init \
--apiserver-advertise-address10.168.9.184 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.21.3 \
--service-cidr10.96.0.0/12 \
--pod-network-cidr10.244.0.0/16
【若要重新初始化集群状态kubeadm reset然后再进行上述操作】参数说明
kubeadm init \
--apiserver-advertise-address10.168.9.184 \
#指定master监听的地址修改为自己的master地址
--image-repository registry.aliyuncs.com/google_containers \
#指定为aliyun的下载源最好用国内的
--kubernetes-version v1.18.0 \
#指定k8s版本1.18.0版本比较稳定
--service-cidr10.96.0.0/12 \
#设置集群内部的网络
--pod-network-cidr10.244.0.0/16
#设置pod的网络
# service-cidr 和 pod-network-cidr 最好就用这个不然需要修改后面的 kube-flannel.yaml 文件记得保存好最后的 kubeadm join的信息node节点加入集群需要token 不然要执行生成token
kubeadm token create --print-join-command
#利用kubeadm命令重新生成tokennode 节点加入集群需要token2.2根据日志提示执行以下命令可使用kubectl管理工具
执行上方初始化master节点后程序会打印提示日志就是设置环境变量 kubeconfig官网解释
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#命令的含义Kubectl 是一个命令行接口用于对 Kubernetes 集群运行命令。
#Kubectl 在 $HOME/.kube 目录中寻找一个名为 config 的文件。
#你可以通过设置环境变量 KUBECONFIG 或设置 --kubeconfig 参数指定其它 kubeconfig 文件
#当集群初始化成功后要使 kubectl 适用于非 root 用户则需要运行以下命令这些命令也是 kubeadm init输出的一部分
#即创建.kube目录 - 拷贝配置文件 - 用户授权
#当然如果你是 root 用户则可以直接添加环境变量执行export KUBECONFIG/etc/kubernetes/admin.confkubectl cluster-info
#查看一下是否成功等待一会儿同时可以发现像etccontrollerscheduler等组件都以pod的方式安装成功三、node节点操作所有node节点
3.1kube join将node节点加入k8s集群
记得保存初始化master节点的最后打印信息【注意这边要自己的下面我的只是一个参考】!!!
kubeadm join 10.168.9.184:6443 --token ocf65a.xz2z2v5oloxs5pn5 \--discovery-token-ca-cert-hash sha256:fd77aa9043c785bf0b2e79fa7293137d56aeef07e5259654b4afa0ce38b74362
#获取前面创建好的token令牌所有node节点都执行四、安装部署网络插件master节点上
必须安装网络组件否则k8s各个节点都是Noready状态
calico和flannel二选一本次安装使用的是flannel网路插件 二者不同可以查看官方文档
4.1calico网络插件
选择calico网络插件版本 https://kubernetes.io/docs/concepts/cluster-administration/addons/ calico网络插件 https://docs.tigera.io/v3.9/manifests/tigera-operator.yaml
4.1.1部署方式
kubectl apply -f https://docs.projectcalico.org/v3.20/manifests/calico.yaml
# 在k8s中安装calicokubectl get pods --all-namespaces -w
# 确认一下calico是否安装成功状态是否正常五、检查各节点健康状态 kubectl get cs
#查询master是否正常
#若状态为unhealthy
vim /etc/kubernetes/manifests/kube-scheduler.yaml
vim /etc/kubernetes/manifests/kube-controller-manager.yaml
#将- --port0注释掉kubectl get pods -A
#检查容器状态节点状态kubectl get nodes
#查询node节点是否ready 到此部署结束