搭建k8s集群


如果曾经安装过,建议清理旧的配置

rm -rf /root/.kube
rm -rf /etc/cni/net.d

ipvsadm -C
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

安装docker

docker安装

安装 kubeadm

kubeadm安装文档

kubeadm init \
  --apiserver-advertise-address=172.16.51.9 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.23.1 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=192.168.0.0/16

安装 Pod 网络附加组件(calico或flannel)

calico安装文档
flannel

允许控制平面节点上调度 Pod

kubectl taint nodes --all node-role.kubernetes.io/master-

加入节点

遇到问题

error execution phase control-plane-prepare/download-certs: error downloading certs: error downloading the secret: secrets "kubeadm-certs" is forbidden
# certificate-key 默认2小时的有效期,如果过期按照提示重新生成
# 使用命令重新生成 certificate-key 
# 用新证书替换--certificate-key后面的内容
$ kubeadm init phase upload-certs --upload-certs

不关闭swap启动k8s

vi /etc/sysconfig/kubelet

KUBELET_EXTRA_ARGS="--fail-swap-on=false"

dashboard

其他pc访问dashboard,端口转发
安装dashboard

ssh -L localhost:8001:localhost:8001 -NT root@

创建用户

获取Token

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

安装helm

helm

安装 ingress

选择下面任何一个即可

haproxy

haproxy-ingress

traefik

install-traefik

外部负载均衡器 metalLB

metalLB

k8s