<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Kubeadm部署Kubernetes

       

      Kubernetes集群搭建

       

      1       部署方式

      1.1   生產環境部署k8s的2中方式

      1.1.1  Kubeadm

               Kubeadm是一個工具,提工kubeadm init和kubeadm join 用于快速部署kubernetes集群

      部署地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm

      1.1.2  二進制

               推薦,從官方下載發行版的二進制包,手動部署每個組件,組成kubernetes集權

      下載地址:https://github.com/kubernetes/kubernetes/releases

       

      1.2   服務器硬件配置推薦

       

       

       

       

       

       

       

      1.3   使用kubeadm快速部署一個k8s集群

      # 創建一個 Master 節點

      kubeadm init

      安裝詳解

       

       

      # 將一個 Node 節點加入到當前集群中

      kubeadm join <Master節點的IP和端口 >

       

       

      1.4   K8s CNI網絡模型

       

       

       

       

       

      2       kubeadm快速安裝

       

      kubeadm是官方社區推出的一個用于快速部署kubernetes集群的工具。

      這個工具能通過兩條指令完成一個kubernetes集群的部署:

      # 創建一個 Master 節點
      $ kubeadm init
       
      # 將一個 Node 節點加入到當前集群中
      $ kubeadm join <Master節點的IP和端口 >

      2.1     1. 安裝要求

      在開始之前,部署Kubernetes集群機器需要滿足以下幾個條件:

      • 一臺或多臺機器,操作系統 CentOS7.x-86_x64
      • 硬件配置:2GB或更多RAM,2個CPU或更多CPU,硬盤30GB或更多
      • 集群中所有機器之間網絡互通
      • 可以訪問外網,需要拉取鏡像
      • 禁止swap分區

      2.2     2. 準備環境

       

      角色

      IP

      k8s-master

      192.168.31.61

      k8s-node1

      192.168.31.62

      k8s-node2

      192.168.31.63

      關閉防火墻:
      $ systemctl stop firewalld
      $ systemctl disable firewalld
       
      關閉selinux
      $ sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
      $ setenforce 0  # 臨時
       
      關閉swap
      $ swapoff -a  # 臨時
      $ vim /etc/fstab  # 永久
       
      設置主機名:
      $ hostnamectl set-hostname <hostname>
       
      master添加hosts
      $ cat >> /etc/hosts << EOF
      192.168.31.61 k8s-master
      192.168.31.62 k8s-node1
      192.168.31.63 k8s-node2
      EOF
       
      將橋接的IPv4流量傳遞到iptables的鏈:
      $ cat > /etc/sysctl.d/k8s.conf << EOF
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      EOF
      $ sysctl --system  # 生效
       
      時間同步:
      $ yum install ntpdate -y
      $ ntpdate time.windows.com

      2.3     3. 安裝Docker/kubeadm/kubelet【所有節點】

      Kubernetes默認CRI(容器運行時)為Docker,因此先安裝Docker。

      2.3.1         3.1 安裝Docker

      $ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
      $ yum -y install docker-ce
      $ systemctl enable docker && systemctl start docker

      配置鏡像下載加速器:

      $ cat > /etc/docker/daemon.json << EOF
      {
        "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
      }
      EOF
      $ systemctl restart docker
      $ docker info

      2.3.2         3.2 添加阿里云YUM軟件源

      $ cat > /etc/yum.repos.d/kubernetes.repo << EOF
      [kubernetes]
      name=Kubernetes
      baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
      enabled=1
      gpgcheck=0
      repo_gpgcheck=0
      gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
      EOF

      2.3.3         3.3 安裝kubeadm,kubelet和kubectl

      由于版本更新頻繁,這里指定版本號部署:

      $ yum install -y kubelet-1.19.0 kubeadm-1.19.0 kubectl-1.19.0
      $ systemctl enable kubelet

      2.4     4. 部署Kubernetes Master

      https://kubernetes.io/zh/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file

      https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#initializing-your-control-plane-node

      在192.168.31.61(Master)執行。

      $ kubeadm init \
        --apiserver-advertise-address=192.168.31.61 \
        --image-repository registry.aliyuncs.com/google_containers \
        --kubernetes-version v1.19.0 \
        --service-cidr=10.96.0.0/12 \
        --pod-network-cidr=10.244.0.0/16 \
        --ignore-preflight-errors=all
      • --apiserver-advertise-address 集群通告地址
      • --image-repository 由于默認拉取鏡像地址k8s.gcr.io國內無法訪問,這里指定阿里云鏡像倉庫地址
      • --kubernetes-version K8s版本,與上面安裝的一致
      • --service-cidr 集群內部虛擬網絡,Pod統一訪問入口
      • --pod-network-cidr Pod網絡,,與下面部署的CNI網絡組件yaml中保持一致

      或者使用配置文件引導:

      $ vi kubeadm.conf
      apiVersion: kubeadm.k8s.io/v1beta2
      kind: ClusterConfiguration
      kubernetesVersion: v1.18.0
      imageRepository: registry.aliyuncs.com/google_containers 
      networking:
        podSubnet: 10.244.0.0/16 
        serviceSubnet: 10.96.0.0/12 
       
      $ kubeadm init --config kubeadm.conf --ignore-preflight-errors=all  

      拷貝kubectl使用的連接k8s認證文件到默認路徑:

      mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
      $ kubectl get nodes
      NAME         STATUS   ROLES    AGE   VERSION
      k8s-master   Ready    master   2m   v1.18.0

      2.5     5. 加入Kubernetes Node

      在192.168.31.62/63(Node)執行。

      向集群添加新節點,執行在kubeadm init輸出的kubeadm join命令:

      $ kubeadm join 192.168.31.61:6443 --token esce21.q6hetwm8si29qxwn \
          --discovery-token-ca-cert-hash sha256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5

      默認token有效期為24小時,當過期之后,該token就不可用了。這時就需要重新創建token,操作如下:

      $ kubeadm token create
      $ kubeadm token list
      $ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
      63bca849e0e01691ae14eab449570284f0c3ddeea590f8da988c07fe2729e924
       
      $ kubeadm join 192.168.31.61:6443 --token nuja6n.o3jrhsffiqs9swnu --discovery-token-ca-cert-hash sha256:63bca849e0e01691ae14eab449570284f0c3ddeea590f8da988c07fe2729e924

      或者直接命令快捷生成:kubeadm token create --print-join-command

      https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-join/

      2.6     6. 部署容器網絡(CNI)

      https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network

      注意:只需要部署下面其中一個,推薦Calico。

      Calico是一個純三層的數據中心網絡方案,Calico支持廣泛的平臺,包括Kubernetes、OpenStack等。

      Calico 在每一個計算節點利用 Linux Kernel 實現了一個高效的虛擬路由器( vRouter) 來負責數據轉發,而每個 vRouter 通過 BGP 協議負責把自己上運行的 workload 的路由信息向整個 Calico 網絡內傳播。

      此外,Calico 項目還實現了 Kubernetes 網絡策略,提供ACL功能。

      https://docs.projectcalico.org/getting-started/kubernetes/quickstart

      $ wget https://docs.projectcalico.org/manifests/calico.yaml

      下載完后還需要修改里面定義Pod網絡(CALICO_IPV4POOL_CIDR),與前面kubeadm init指定的一樣

      修改完后應用清單:

      $ kubectl apply -f calico.yaml
      $ kubectl get pods -n kube-system

      2.7     7. 測試kubernetes集群

      • 驗證Pod工作
      • 驗證Pod網絡通信
      • 驗證DNS解析

      在Kubernetes集群中創建一個pod,驗證是否正常運行:

      $ kubectl create deployment nginx --image=nginx
      $ kubectl expose deployment nginx --port=80 --type=NodePort
      $ kubectl get pod,svc

      訪問地址:http://NodeIP:Port

      2.8     8. 部署 Dashboard

      $ wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml

      默認Dashboard只能集群內部訪問,修改Service為NodePort類型,暴露到外部:

      $ vi recommended.yaml
      ...
      kind: Service
      apiVersion: v1
      metadata:
        labels:
          k8s-app: kubernetes-dashboard
        name: kubernetes-dashboard
        namespace: kubernetes-dashboard
      spec:
        ports:
          - port: 443
            targetPort: 8443
            nodePort: 30001
        selector:
          k8s-app: kubernetes-dashboard
        type: NodePort
      ...
      $ kubectl apply -f recommended.yaml
      $ kubectl get pods -n kubernetes-dashboard
      NAME                                         READY   STATUS    RESTARTS   AGE
      dashboard-metrics-scraper-6b4884c9d5-gl8nr   1/1     Running   0          13m
      kubernetes-dashboard-7f99b75bf4-89cds        1/1     Running   0          13m

      訪問地址:https://NodeIP:30001

      創建service account并綁定默認cluster-admin管理員集群角色:

      # 創建用戶
      $ kubectl create serviceaccount dashboard-admin -n kube-system
      # 用戶授權
      $ kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
      # 獲取用戶Token
      $ kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

      使用輸出的token登錄Dashboard。

       

      posted @ 2021-02-03 10:05  春天的風情  閱讀(180)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 男人的天堂av一二三区| 久久天堂无码av网站| 国产午夜福利在线机视频 | 不卡一区二区国产精品| 国产一级片内射在线视频| 给我免费观看片在线| 国内久久人妻风流av免费| 91人妻无码成人精品一区91| 久久99精品久久久久久青青| 少妇高潮太爽了在线视频| 国产深夜福利在线免费观看 | 中国女人熟毛茸茸A毛片| 国产超级va在线观看视频| 国产精品一区二区性色av| 中文字幕乱偷无码av先锋蜜桃| 女同在线观看亚洲国产精品| 亚洲第一区二区快射影院| 国产精成人品日日拍夜夜 | 最近中文字幕日韩有码| 国产成人综合网亚洲第一| 国内熟妇人妻色在线视频| 佛山市| 亚洲国产一区二区三区最新| 成在线人永久免费视频播放| 99在线小视频| 日韩熟妇中文色在线视频| 免费 黄 色 人成 视频 在 线| 内射一区二区三区四区| 日本一高清二区视频久二区| 国产台湾黄色av一区二区| 人人爽人人爽人人片av东京热| 久久国产精品精品国产色婷婷| 抚远县| 久久综合97丁香色香蕉| 国产精品白浆无码流出| 熟妇人妻av中文字幕老熟妇| 高潮迭起av乳颜射后入| 色婷婷av久久久久久久 | 国产精品第一页一区二区| 国产精成人品日日拍夜夜 | 大肉大捧一进一出好爽视频mba|