偃师市住房和城乡建设局网站,免费的crm软件系统,网站降权怎么处理,网站服务器需要多大准备多台服务器#xff0c;选定一台为master例如设置ip为192.168.0.10,host: k8s.master#xff0c;其他分别为 k8s.s11 192.168.0.11k8s.s12 192.168.0.12....hostname可以使用命令配置hostname k8s.masterip解析可以在hosts文件中写入#xff0c;如果有内部dns解析可以在内…准备多台服务器选定一台为master例如设置ip为192.168.0.10,host: k8s.master其他分别为 k8s.s11 192.168.0.11k8s.s12 192.168.0.12....hostname可以使用命令配置hostname k8s.masterip解析可以在hosts文件中写入如果有内部dns解析可以在内部dns上解析关闭firewalld和selinux安装docker、k8s注意尽量保持多台服务器安装的应用版本一致我采用的版本为kubeadm1.23.6kubectl1.23.6kubelet1.23.6docker23.0.1(k8s会提示没有验证过可以使用Latest validated version: 20.10关闭交换分区(可选提升性能暂时禁用swapoff -a长期关闭可以在/etc/fastab文件中注释重启服务器Linux内核参数设置考虑到服务器配置可能他人修改或被系统默认调整建议设置 /etc/sysctl.confnet.bridge.bridge-nf-call-ip6tables 1
net.bridge.bridge-nf-call-iptables 1
net.ipv4.ip_nonlocal_bind 1
net.ipv4.ip_forward 1
vm.swappiness 0如果不设置可能导致 [ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1等网络错误。bridge.bridge-nf-call-ip6tables/bridge.bridge-nf-call-iptables设置原因不管是 iptables 还是 ipvs 模式Kubernetes 中访问 service 都会进行 DNAT将原本访问 ClusterIP:Port 的数据包 DNAT 成 service 的某个 Endpoint (PodIP:Port)然后内核将连接信息插入 conntrack 表以记录连接目的端回包的时候内核从 conntrack 表匹配连接并SNAT这样原路返回形成一个完整的连接链路.net.ipv4.ip_forward出于安全考虑Linux系统默认是禁止数据包转发的。k8s中的三层扁平网络涉及到流量在不同网络设备之间的传递比如flannel的实现中流量会在cni网桥flannel.1设备本机网卡设备之间传递流量。如果关闭则流量无法在多个物理网络设备间传递。0表示禁止进行IP转发1表示IP转发功能已经打开。net.ipv4.ip_nonlocal_bind此参数表示是否允许服务绑定一个本机不存在的IP地址使用场景有些服务需要依赖一个vip才能启动但是此vip不在本机上当vip飘移到本机上时才存在但是服务又需要提前启动例如haproxy,nginx等代理需要绑定vip时0默认值表示不允许服务绑定一个本机不存的地址1表示允许服务绑定一个本机不存在的地址vm.swappiness值越大表示越积极使用swap分区越小表示越积极使用物理内存;设置为0会禁止使用swap.需要根据服务器运行的程序类型来设置不同的参数值。例如对于Oracle一般设置为10对于MySQL一般设置为1尽可能不用swap分区。初始化主节点安装依赖镜像docker pull coredns/coredns:1.8.4
docker tag coredns/coredns:1.8.4 registry.dev.com/coredns:v1.8.4
docker images初始化kubeadm init \--apiserver-advertise-address192.168.0.10 \--image-repository registry.aliyuncs.com/google_containers \--service-cidr10.96.0.0/12 \--pod-network-cidr10.244.0.0/16如果master需要开启swap还需要修改 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf kubelet 的启动文件的配置 在启动命令ExecStart末尾加上 --fail-swap-onfalse 然后重新加载配置systemctl daemon-reload
systemctl start kubelet初始成功后有提示加入语句Your Kubernetes control-plane has initialized successfully!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 192.168.0.10:6443 --token 42mf2r.n3jvn26r34byvv9b \--discovery-token-ca-cert-hash sha256:775a36110dd28b84c3ac074657efc55a899cff77a019a9e2475f1bd0f579b535按照提示完成master设置 mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config子节点加入kubeadm join 192.168.0.10:6443 --token 42mf2r.n3jvn26r34byvv9b \--discovery-token-ca-cert-hash sha256:775a36110dd28b84c3ac074657efc55a899cff77a019a9e2475f1bd0f579b535如果子节点没有关闭swap可以添加 --ignore-preflight-errorsSwap检查在主节点上使用命令查询节点情况 kubectl get nodesNAME STATUS ROLES AGE VERSION
k8s.master NotReady control-plane,master 94m v1.23.6
k8s.s11 NotReady none 71m v1.23.6NotReady 说明master和node节点之间的通信还是有问题的容器之间通信还没有准备好