昆明网站建设培训求个免费网站好人有好报

当前位置: 首页 > news >正文

昆明网站建设培训,求个免费网站好人有好报,python个人网站开发,芜湖小学网站建设目录 一 主机准备 1.1 设备配置 ⚠️注意1 ⚠️注意2 1.2 环境准备 1.3docker安装 二 安装kubeadm、kubectl、kubelet 2.1 添加镜像源 2.2 安装 三 master节点部署 四 node节点加入集群 五 CNI网络插件calico 六 其他节点使用kubectl 1.拷贝文件 2.添加到环境变量…目录 一 主机准备 1.1 设备配置 ⚠️注意1 ⚠️注意2 1.2 环境准备 1.3docker安装 二 安装kubeadm、kubectl、kubelet 2.1 添加镜像源 2.2 安装 三 master节点部署 四 node节点加入集群 五 CNI网络插件calico 六 其他节点使用kubectl 1.拷贝文件 2.添加到环境变量 七 节点离开集群 一 主机准备 1.1 设备配置 内网Ip/外网Name10.1.57.200/ 12.152.230.21K8s-master(4G4核)10.1.57.20139.10.181.51K8s-work2(4G4核)10.1.57.20211.230.108.20K8s-work3(4G4核) ⚠️注意1 如果是云服务器并且内网不在同一网段则可以参考下面文章进行异地组网 zerotierhttps://blog.csdn.net/hey_lie/article/details/131304142?spm1001.2014.3001.5501 ⚠️注意2 主机的配置master配置可以略差当node节点的配置最低2核2G【最好按自己的环境按最高的来否则后期加入kubesphere等会失败】 1.2 环境准备

1.关闭防火墙普通方式生成环境应开放相应的端口并打开防火墙

这里选择关闭防火墙

systemctl stop firewalld systemctl disable firewalld# 2.关闭selinux让容器可以读取主机文件系统

永久关闭

sed -i s/enforcing/disabled/ /etc/selinux/config

临时关闭

setenforce 0 # 3.关闭swap swapoff -a # 临时 sed -ri s/.swap./#/ /etc/fstab # 永久# 4.根据规划设置主机名k8s-master,k8s-work1,k8s-work2 hostnamectl set-hostname hostname# 5./etc/hosts中添加dns映射 cat /etc/hosts EOF 10.1.57.200 k8s-master 10.1.57.201 k8s-work1 10.1.57.202 k8s-wokr2 EOF# 6.将桥接的IPv4流量传递到iptables的链 cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 EOF# 7.时间同步 yum install ntpdate -y ntpdate time.windows.com# 8.让配置生效 sysctl –system# 9.重启关闭swap需要重启才生效 reboot 1.3docker安装 参考下面的文章 安装指定版本dockerhttps://blog.csdn.net/hey_lie/article/details/131019165?spm1001.2014.3001.5501 二 安装kubeadm、kubectl、kubelet 2.1 添加镜像源 由于国内网络原因因此我们需要安装镜像方可下载 参考链接kubernetes镜像_kubernetes下载地址_kubernetes安装教程-阿里巴巴开源镜像站 cat /etc/yum.repos.d/kubernetes.repo EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled1 gpgcheck0 repo_gpgcheck0gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF 2.2 安装 下载 yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6 运行 systemctl enable kubelet 三 master节点部署 apiserver-advertise-address10.1.57.200 为master节点主机的内网ip image-repository镜像仓库选择阿里云 service-cidr为service网段【一般不用改】 pod-network-cidr为pod网段【一般不用改】 kubeadm init --apiserver-advertise-address10.1.57.200 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.6 --service-cidr10.96.0.0/12 --pod-network-cidr10.244.0.0/16 执行完成后会出现下面的日志 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/configAlternatively, if you are the root user, you can run:export KUBECONFIG/etc/kubernetes/admin.confYou 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 10.1.57.200:6443 --token yz9i3n.tuldbmd9decu7t3j \--discovery-token-ca-cert-hash sha256:fad63729371f74839347b1ac0dd772eaff9402a40365f2f07e9331311e451107 如果在执行过程中出现 /proc/sys/net/ipv4/ip_forward contents are not set to 1 则修改/proc/sys/net/ipv4/ip_forward内容为1后继续重新执行init echo 1 /proc/sys/net/ipv4/ip_forward 安装完成后按照日志提示执行管理员配置,使其可以在任意位置执行kubectl mkdir -p \)HOME/.kube sudo cp -i /etc/kubernetes/admin.conf \(HOME/.kube/config sudo chown \)(id -u):\((id -g) \)HOME/.kube/config 验证 执行命令kubectl get nodes [rootk8s-master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master NotReady control-plane,master 42s v1.23.6 四 node节点加入集群 在node节点执行上面init时的kubeadm join…命令 执行成功后在master节点继续查看节点即可发现节点已经加入成功 [rootk8s-master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master NotReady control-plane,master 2m39s v1.23.6 k8s-work1 NotReady none 71s v1.23.6 如果init日志忘记需要创建密钥进行加入具体方式如下 在master中查看是否存在密钥 kubeadm token list #返回 TOKEN TTL EXPIRES USAGES
wjxs21.v0tbteb0vahnu2sa 19h 2023-06-08T02:57:15Z authentication,signing 如果没有则创建一个密钥 kubeadm token create #返回即使密钥 krblln.39wff92dh0lx48iq 接着通过这个密钥创建一个验证码 执行下面的命令 openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2/dev/null |
openssl dgst -sha256 -hex | sed s/^.* // 返回一个hash值 #返回一个hash值 46cfc95eecefa09197ca5b25925b20c8816759585969151d04de55c08c8f821f 拼接 sha256: #前面拼接sha256: sha256:46cfc95eecefa09197ca5b25925b20c8816759585969151d04de55c08c8f821f node节点执行 密钥为刚才的到的密钥 hash值为刚才的到的hash值 kubeadm join 10.1.57.200:6443 –token 密钥 --discovery-token-ca-cert-hash hash值 五 CNI网络插件calico CNI 容器网络接口就是在网络解决方案由网络插件提供这些插件配置容器网络则通过CNI定义的接口来完成也就是CNI定义的是容器运行环境与网络插件之间的接口规范。这个接口只关心容器的网络连接在创建容器是分配网络删除容器是移除网络。插件就是对CNI的规范的具体实现 [k8s与calico版本对比参考]  https://docs.tigera.io/calico/latest/getting-started/kubernetes/community-tested  版本选择为v3.23 选择一个文件夹下载calico文件 mkdir /opt/k8s/cni cd /opt/k8s/cni curl https://docs.projectcalico.org/v3.23/manifests/calico.yaml -O 下载完成后编辑该文件

  1. 将CALICO_IPV4POOL_CIDR设置为与初始化(master中kubelet init的pod-network-cidr)的 cidr 相同 2. 配置networkmanager cat /etc/NetworkManager/conf.d/calico.conf EOF [keyfile] unmanaged-devicesinterface-name:cali;interface-name:tunl;interface-name:vxlan.calico;interface-name:wireguard.cali EOF 3. 删除镜像 docker.io/ 前缀避免下载过慢导致失败【能访问外网可以省略】 sed -i s#docker.io/##g calico.yaml 4.如果下载很慢可以提前下载镜像 如果下载失败可以去docker hub搜索下载 docker pull quay.io/calico/cni:v3.23.5 docker pull quay.io/calico/kube-controllers:v3.23.5 docker pull quay.io/calico/node:v3.23.5 docker pull quay.io/calico/pod2daemon-flexvol:v3.23.5 docker pull quay.io/calico/typha:v3.23.5 5.构建calico应用 kubectl apply -f calico.yaml 验证 等待一段时间后查看命名空间为kube-system下的pod观察calico-node-xxx状态都为runningready都为1coredns同样如此说明网络插件已经安装完成 #查看命名空间为kube-system下的pod kubectl get pods -n kube-system #结果如下 NAME READY STATUS RESTARTS AGE calico-kube-controllers-66bf87d4b8-pvl92 11 Running 0 3h43m calico-node-bm7l2 11 Running 0 3h43m calico-node-pdzr5 11 Running 0 3h43m calico-node-wz7cj 11 Running 0 3h43m coredns-6d8c4cb4d-9nm7p 11 Running 0 5h10m coredns-6d8c4cb4d-b9glg 11 Running 0 5h10m #接着查看node状态应处于ready状态 kubectl get nodes #信息如下此时status应该为noready NAME STATUS ROLES AGE VERSION k8s-master1 Ready control-plane,master 4h51m v1.23.6 k8s-work1 Ready none 4h49m v1.23.6 k8s-work2 Ready none 4h48m v1.23.6 六 其他节点使用kubectl 目前只能在master节点使用kubectl需要在node节点使用则需要下面操作 1.拷贝文件 将 master 节点中 /etc/kubernetes/admin.conf 拷贝到需要两个work节点的 /etc/kubernetes 目录中 使用scp命令进行远程拷贝 #scp 文件路径 远程登录用户名ip:目标文件夹 scp /etc/kubernetes/admin.conf rootk8s-work1:/etc/kubernetes 2.添加到环境变量 #添加环境变量到配置文件 echo export KUBECONFIG/etc/kubernetes/admin.conf ~/.bash_profile #让环境变量文件生效 source ~/.bash_profile 至此node节点也可以使用kubectl了 七 节点离开集群 #节点停止调度 kubectl cordon nodename #节点驱逐pod kubectl drain nodename #节点删除 kubectl delete node nodename