如何再网站上做免费广告,阿里巴巴如何建设网站,华夏名网网站建设,wordpress 相册 不显示目录 一、实验规划
1、规划表
2、安装前宿主机检查
1.配置主机名
2.制作ssh免密#xff08;VM1中执行#xff09; 3.修改hosts 文件
4. 修改内核相关参数
5.加载模块
6. 清空iptables、关闭防火墙、关闭交换空间、禁用selinux
7. 安装ipvs与时钟同步
8.配置docker的…目录 一、实验规划
1、规划表
2、安装前宿主机检查
1.配置主机名
2.制作ssh免密VM1中执行 3.修改hosts 文件
4. 修改内核相关参数
5.加载模块
6. 清空iptables、关闭防火墙、关闭交换空间、禁用selinux
7. 安装ipvs与时钟同步
8.配置docker的yum源、安装docker及开机自启 3、安装kubeadm、kubelet、kubectl
4、部署master节点
1.生成yaml文件及初始化集群
2. 拉取网络组件配置文件 - calico
3.部署calico
4.错误处理
5、worker节点加入集群
6、k8s自动部署环境脚本
7、worker端运行kubectl 一、实验规划
1、规划表 设备 主机名 IP 角色 虚拟机1VM1 K8s01 192.168.248.20 Master 虚拟机2VM2 K8s02 192.168.248.21 Node 虚拟机3VM3 K8s03 192.168.248.22 Node
默认已自行配置过IP地址配置IP方式有很多netplan、nmtui、nmcli、networking等方式
2、安装前宿主机检查
1.配置主机名 VM1执行 [rootlocalhost ~]# hostnamectl set-hostname k8s01 VM2执行 [rootlocalhost ~]# hostnamectl set-hostname k8s02 VM3执行 [rootlocalhost ~]# hostnamectl set-hostname k8s03 配置完成后退出当前连接的远程终端重新登录自动生效 2.制作ssh免密VM1中执行
[rootk8s01 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -N #生成公钥
#-t rsa指定使用RSA算法生成密钥对
#-f ~/.ssh/id_rsa指定将私钥保存在~/.ssh/id_rsa文件中
#-N 设置空密码以保护私钥文件[rootk8s01 ~]# ls /root/.ssh/ #查看公私钥是否生成
id_rsa id_rsa.pub[rootk8s01 ~]# for i in 192.168.248.{20..22}; do ssh-copy-id root$i; done #将私钥拷贝给需要远程的主机 3.修改hosts 文件
echo -e 192.168.248.20 k8s01
192.168.248.21 k8s02
192.168.248.22 k8s03 /etc/hosts
4. 修改内核相关参数
echo -e net.ipv4.ip_forward 1
vm.swappiness 0
net.bridge.bridge-nf-call-ip6tables 1
net.bridge.bridge-nf-call-iptables 1
fs.may_detach_mounts 1 /etc/sysctl.d/k8s.conf
#net.ipv4.ip_forward:将IPv4转发功能开启允许系统作为路由器转发IP数据包
#net.bridge.bridge-nf-call-ip6tables 1: 允许通过网桥的IPV6数据包进行iptables规则的处理
#net.bridge.bridge-nf-call-iptables 1: 允许通过网桥的IPV4数据包进行iptables规则的处理
#fs.may_detach_mounts 1: 在卸载文件系统时允许解除挂载
5.加载模块
echo -e #!/bin/bash
modprobe -- br_netfilter
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4/etc/sysconfig/modules/ipvs.modules
#br_netfilter: 加载br_netfilter内核模块它是用于网桥与网络层之间的过滤器。
#ip_vs 加载ip_vs内核模块它提供IPVSIP Virtual Server功能用于实现负载均衡。
#ip_vs_rr 加载ip_vs_rr内核模块它是IPVS中的一种负载均衡调度算法使用轮询方式进行负载均衡。
#ip_vs_wrr 加载ip_vs_wrr内核模块它是IPVS中的一种负载均衡调度算法使用加权轮询方式进行负载均衡。
#ip_vs_sh 加载ip_vs_sh内核模块它是IPVS中的一种负载均衡调度算法使用哈希方式进行负载均衡。
#nf_conntrack_ipv4加载nf_conntrack_ipv4内核模块它是IPv4连接跟踪模块用于跟踪网络连接状态chmod 755 /etc/sysconfig/modules/ipvs.modules bash /etc/sysconfig/modules/ipvs.modules lsmod | grep -E ip_vs|nf_conntrack_ipv4 /dev/null
6. 清空iptables、关闭防火墙、关闭交换空间、禁用selinux
iptables -F
sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config
systemctl disable --now firewalld /dev/null
swapoff -a
sed -i s/dev/mapper/centos-swap#/dev/mapper/centos-swapg /etc/fstab
7. 安装ipvs与时钟同步
yum install -y ipset ipvsadm bash-completion sshpass
yum install -y chrony –y /dev/null
systemctl enable --now chronyd
sleep 20
chronyc sources
8.配置docker的yum源、安装docker及开机自启
yum install wget -y
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i sdownload.docker.commirrors.tuna.tsinghua.edu.cn/docker-ce /etc/yum.repos.d/docker-ce.repo
yum install --setoptobsoletes0 docker-ce-18.06.3.ce-3.el7 -y
mkdir -p /etc/docker
echo -e {registry-mirrors: [https://u6xekpvk.mirror.aliyuncs.com]
} /etc/docker/daemon.json #替换镜像加速器
systemctl daemon-reload systemctl restart docker systemctl enable docker
sleep 3
systemctl status docker 3、安装kubeadm、kubelet、kubectl
yum install -y kubelet-1.19.16 kubeadm-1.19.16 kubectl-1.19.16
systemctl enable kubelet --now
4、部署master节点
1.生成yaml文件及初始化集群
kubeadm config print init-defaults --component-configs KubeletConfiguration --component-configs KubeProxyConfiguration kubeadm.yaml #生成kubeadm的yaml文件
sed -i /advertiseAddress:/ s/:.*/: ${MASTER_IP}/ /root/kubeadm.yaml
sed -i /imageRepository:/ s%:.*%: registry.aliyuncs.com/google_containers% /root/kubeadm.yaml
sed -i /serviceSubnet:/ a \ \ podSubnet: 10.244.0.0/16 /root/kubeadm.yaml
sed -i /mode: / c mode: ipvs /root/kubeadm.yaml
kubeadm config images pull --config /root/kubeadm.yaml
kubeadm init --config kubeadm.yaml | tee k8s.txt
#出现如下内容说明初始化成功
To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configYou should now deploy a pod network to the cluster.
Run kubectl apply -f [podnetwork].yaml with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.248.20:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:233778c959cc5aa1e42813fe04e8a492c8c9aba48882b757d49f617648e7ff65#修改YAML文件
eval sed -n /mkdir/ s/ //p /root/k8s.txt
eval sed -n /sudo cp/ s/ //p /root/k8s.txt
eval sed -n /sudo chown/ s/ //p /root/k8s.txt
curl https://docs.projectcalico.org/archive/v3.20/manifests/calico.yaml -O
kubectl apply -f calico.yaml
此为worker节点假如集群的命令 根据提示内容命令添加环境变量
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
2. 拉取网络组件配置文件 - calico
curl https://docs.projectcalico.org/archive/v3.20/manifests/calico.yaml -O
3.部署calico
kubectl apply -f calico.yaml
kubectl get pods -A #当所有pod都为runing 1/1时表示部署完成
4.错误处理
pod状态一直处于”ContainerCreating“ 或其它状态通过如下命令强制删除pod删除后会自动创建新的pod
kubectl delete -n kube-system pods 容器ID --force --grace-period0
5、worker节点加入集群
kubeadm join 192.168.248.20:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:233778c959cc5aa1e42813fe04e8a492c8c9aba48882b757d49f617648e7ff65
#注意使用init时生成出来的提示命令
6、k8s自动部署环境脚本
自动部署单master节点 双worker脚本
7、worker端运行kubectl
加入完成后系统提示使用命令“kubectl get node”查看集群状态输入命令后系统会有以下报错
[rootk8s02 ~]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?
使用以下命令将master节点的admin.conf文件拷贝到当前节点
[rootk8s02 ~]# mkdir -p $HOME/.kube
[rootk8s02 ~]# scp root192.168.248.20:/etc/kubernetes/admin.conf $HOME/.kube/config
[rootk8s02 ~]# chown $(id -u):$(id -g) $HOME/.kube/config