这里略过.

set -x#根据规划设置主机名(在3台机上分别运行)hostnamectl set-hostname master01hostnamectl set-hostname node01hostnamectl set-hostname node02#关闭防火墙ufw disable#关闭swapswapoff -a && sed -ri 's/.*swap.*/#&/' /etc/fstab#安装 dockersudo apt-get install -y dockersudo apt-get install -y docker.io docker --version systemctl start dockerapt-get install -y apt-transport-httpsapt-get install -y curl# kubeadm init 默认会去google拉镜像,所以换了阿里的源,前面docker是系统默认的.curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - cat <<EOF >/etc/apt/sources.list.d/kubernetes.listdeb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial mainEOFapt-get update# master上运行apt-get install -y kubelet kubeadm kubectl# node上运行apt-get install -y kubelet kubeadmapt-get install -y ethtoolapt-get install -y socatapt-get install -y conntrack# checkkubeadm version# 配置docker cgroupdriver (与kubelet要一致)cat <<EOF >/etc/docker/daemon.json{"exec-opts": ["native.cgroupdriver=systemd"]}EOFsystemctl restart dockersystemctl start kubeletexport KUBECONFIG=/etc/kubernetes/admin.conf# master 上运行kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16#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/.kube# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config# sudo chown $(id -u):$(id -g) $HOME/.kube/config##Alternatively, if you are the root user, you can run:## export KUBECONFIG=/etc/kubernetes/admin.conf##You 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.137.6:6443 --token vzcxza.bhcs335r92677g3i \# --discovery-token-ca-cert-hash sha256:72b820c8f2dd7606ddbf6a155fadb57e0f266c15bb39c7f41de61cc605f6f962 # kubeadm init 通过给的 kubeadm join 将node 加入master 节点kubeadm join 192.168.137.6:6443 --token vzcxza.bhcs335r92677g3i \ --discovery-token-ca-cert-hash sha256:72b820c8f2dd7606ddbf6a155fadb57e0f266c15bb39c7f41de61cc605f6f962# K8S在kubeadm init以后查询kubeadm join# kubeadm token create --print-join-commandset +x到这1个master节点2个node节点的k8s就搭好了
可以用kubect get xxx 检查状态,(我这里刚搭完还是 notReady 状态,检查后是网络插件没装,遇到的话可以参考后面issue汇总里面)
root@master01:~/k8s# kubectl get nodes -ANAME STATUS ROLES AGE VERSIONmaster01 Ready control-plane,master 4d17h v1.23.5node01 Ready <none> 2d v1.23.5node02 Ready <none> 2d v1.23.5package mainimport ( "net/http" "flag" log "github.com/sirupsen/logrus" "github.com/gin-gonic/gin")func entry(c *gin.Context) { c.String(http.StatusOK, "hello !")}func main() { flag.Parse() var ( ) log.Info("hello serv start ...") engine := gin.Default() engine.GET("/entry", entry) engine.Run("0.0.0.0:8868")}FROM golang:1.17.2-stretchENV GOPROXY=http://goproxy.ioWORKDIR $GOPATH/src/ADD ./bin $GOPATH/src/binADD ./source $GOPATH/src/RUN go env -w GOSUMDB=offWORKDIR $GOPATH/src/RUN go build -o /usr/local/bin/engineCMD ["/usr/local/bin/engine"]apiVersion: apps/v1kind: Deploymentmetadata: name: hello-minikubesspec: selector: matchLabels: app: myweb replicas: 2 template: metadata: labels: app: myweb spec: containers: - name: hello-minikubes image: ailumiyana/minikube-hello:latest ports: - containerPort: 8868 protocol: TCP---apiVersion: v1kind: Servicemetadata: name: mywebspec: type: NodePort ports: - port: 8868 targetPort: 8868 nodePort: 31314 selector: app: mywebkubectl apply -f hello.yml
F5几下,检查两个节点,好像都有流量,还不知道什么策略,慢慢研究~
今天先到这~
好像是没网络插件,搜索尝试手动添加 flannel 镜像和 cni 配置 后解决
docker pull quay.io/coreos/flannel:v0.11.0-amd64mkdir -p /etc/cni/net.d/cat <<EOF> /etc/cni/net.d/10-flannel.conf{"name":"cbr0","type":"flannel","delegate": {"isDefaultGateway": true}}EOFmkdir /usr/share/oci-umount/oci-umount.d -pmkdir /run/flannel/cat <<EOF> /run/flannel/subnet.envFLANNEL_NETWORK=172.100.0.0/16FLANNEL_SUBNET=172.100.1.0/24FLANNEL_MTU=1450FLANNEL_IPMASQ=trueEOFhttps://raw.githubusercontent.com/coreos/flannel/v0.11.0/Documentation/kube-flannel.yml
然后这个yml 里面beta版本貌似是过期的,改成v1 后好了
这个也是个坑,最后在网络连接里面,重新关闭开启vmnet1的网络共享后好了.