kubernetes部署是一个繁琐的过程,当然也可以使用第三方安装工具一键安装,但这不利于部署过程学习和自定义性,并且第三方工具或多或少都会有入侵性
部署k8s网络插件
网络插件选择
Flannel:
Overlay网络,默认VXLAN封装,可选host-gw更高效(需二层网络连通),适合小型集群快速部署
Calico:
混合模式支持BGP路由(纯三层)、IPIP隧道或VXLAN Overlay,集成eBPF优化数据面(新版),提供高级网络策略控制
Cilium
基于eBPF内核层技术,绕过传统iptables/IPVS,直接控制数据包转发,内置服务发现与丰富可观测性能力
选择部署:flannel插件
wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
或者:
wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
修改flannel配置文件
vim kube-flannel.yml
集群容器网段必须要与集群的pod-network一致,转发类型默认为vxlan,如果各节点在同一个内网中推荐改为 "Type": "host-gw" 更高效

flanneld启动参数加上–-iface=
本例中的网卡为 ens160

启动flannel网络插件
kubectl apply -f kube-flannel.yml

查看集群相关信息:

确认kube-proxy反向代理类型为ipvs:
kubectl logs kube-proxy-h94vf -n kube-system

检查ipvsadm策略:
ipvsadm -Ln

部署其他必要组件
Metrics部署
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
修改Metrics配置
vim components.yaml
……
apiVersion: apps/v1
kind: Deployment
……
spec:
replicas: 2 # 增加副本数,可根据集群规模调整,默认未设置(可选)
……
spec:
hostNetwork: true
containers:
- args:
- --cert-dir=/tmp
- --secure-port=10250
- --kubelet-insecure-tls # 追加此args,用于跳过tls验证
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname,InternalDNS,ExternalDNS # 追加dns项
- --kubelet-use-node-status-port
image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.7.2 # 阿里云镜像加速地址
imagePullPolicy: IfNotPresent
……
安装启动 metrics
kubectl apply -f components.yaml
kubectl -n kube-system get pods -l k8s-app=metrics-server
kubectl top nodes -A

如果有问题可以检查api服务状态:
kubectl get apiservice v1beta1.metrics.k8s.io -o yaml
安装包管理器helm3 (all of master)
wget https://get.helm.sh/helm-v3.18.2-linux-amd64.tar.gz
tar -zxvf helm-v3.18.2-linux-amd64.tar.gz
cp linux-amd64/helm /usr/local/bin/
helm version
echo 'source <(helm completion bash)' >> .bashrc # helm 自动补全命令

添加bitnami仓库源(repo)
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo list
搜索在bitnami中可以安装的软件
helm search repo bitnami

kubectl命令自动补齐 (all of master)
默认kubectl命令不会自动补齐 安装在所有master节点
yum install bash-completion -y
source /etc/profile.d/bash_completion.sh
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc

etcd命令安装与操作:
wget https://github.com/etcd-io/etcd/releases/download/v3.6.1/etcd-v3.6.1-linux-amd64.tar.gz
tar -zxvf etcd-v3.6.1-linux-amd64.tar.gz && cp etcd-v3.6.1-linux-amd64/etcdctl /usr/local/bin/ && etcdctl version

操作etcd:
etcdctl -w table --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key --cacert /etc/kubernetes/pki/etcd/ca.crt \
--endpoints=https://10.2.16.181:2379,https://10.2.16.182:2379,https://10.2.16.183:2379 endpoint status --cluster

评论 (0)