kubernetes叢集搭建(二進制方式)之--cni部署
部署cni網絡
master和node節點均需要部署,先在master節點部署然後拷貝到node節點
下載下傳二進制檔案
cd /data/src
wget https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-linux-amd64-v0.8.6.tgz
建立工作目錄并解壓二進制包
mkdir -p /data/cni/bin
tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /data/cni/bin
部署
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
kubectl get pods -n kube-system
kubectl get node
授權apiserver通路kubelet
cat > apiserver-to-kubelet-rbac.yaml<< EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubernetes.io/bootstrapping: rbac-defaults
name: system:kube-apiserver-to-kubelet
rules:
- apiGroups:
- ""
resources:
- nodes/proxy
- nodes/stats
- nodes/log
- nodes/spec
- nodes/metrics
- pods/log
verbs:
- "*"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: system:kube-apiserver
namespace: ""
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:kube-apiserver-to-kubelet
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: kubernetes
EOF
kubectl apply -f apiserver-to-kubelet-rbac.yaml
拷貝目錄到node節點:
kubectl get node
NAME STATUS ROLES AGE VERSION
k8snode1 Ready 82m v1.19.8
看到ready說明就是可以了
驗證:
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
service/kubernetes ClusterIP 10.0.0.1 443/TCP 4h2m
service/nginx NodePort 10.0.0.123 80:30729/TCP 11s
得到資訊如上 獲得 80:30729/TCP
在node節點中通路任何node節點ip:30729即可擷取到nginx的初始頁面