天天看點

(九)kubernetes叢集搭建(二進制方式)之--cni部署

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的初始頁面

繼續閱讀