<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 使用kubeadm-ha腳本一鍵安裝K8S > Github地址:https://github.com/TimeBye/kubeadm-ha ## 環境準備 官網的安裝說明也很簡單但是還有些細節還是沒有提到,所以我自己照著官網的教程 補充了一些細節 ### 硬件系統要求 - Master節點:2C4G + - Worker節點:2C4G + 使用centos7.7安裝請按上面配置準備好3臺centos,1臺作為Master節點,2臺Worker節點 本方式為1主2worker的配置 這是我的各個節點的配置 | 主機名 | ip | 配置 | | ---------- | --------------- | ---- | | k8s-master | 192.168.177.130 | 2C4G | | k8s-node1 | 192.168.177.131 | 2C2G | | k8s-node2 | 192.168.177.132 | 2C2G | ### centos準備 `在安裝之前需要準備一些基礎的軟件環境用于下載一鍵安裝k8s的腳本和編輯配置` #### centos網絡準備 安裝時需要連接互聯網下載各種軟件 所以需要保證每個節點都可以訪問外網 ```sh ping baidu.com ``` 建議關閉 **CentOS** 的防火墻 ```sh systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld ``` 同時需要保證各個節點間可以相互ping通 ```sh ping 其他節點ip ``` #### CentOS軟件準備 用 **ssh** 連接到 **Master** 節點上安裝 Git ```sh yum install git -y ``` ## 部署k8s前配置 #### 下載部署腳本 在Master節點clone安裝腳本 [腳本地址](https://github.com/TimeBye/kubeadm-ha) ``` git clone --depth 1 https://github.com/TimeBye/kubeadm-ha ``` 進入到下載的部署腳本的目錄 ``` cd kubeadm-ha ``` #### 安裝 Ansible 運行環境 在master節點安裝Ansible環境 ```sh sudo ./install-ansible.sh ``` #### 修改安裝的配置文件 由于我是一個master兩個node的方式構建的centos所以我們需要修改example/hosts.s-master.ip.ini 文件 ```sh vi example/hosts.s-master.ip.ini ``` 具體要修改的就是 ip 和密碼 其他的保持默認 我的hosts.s-master.ip.ini 文件預覽 ```ini ; 將所有節點信息在這里填寫 ; 第一個字段 為遠程服務器內網IP ; 第二個字段 ansible_port 為節點 sshd 監聽端口 ; 第三個字段 ansible_user 為節點遠程登錄用戶名 ; 第四個字段 ansible_ssh_pass 為節點遠程登錄用戶密碼 [all] 192.168.177.130 ansible_port=22 ansible_user="root" ansible_ssh_pass="moxi" 192.168.177.131 ansible_port=22 ansible_user="root" ansible_ssh_pass="moxi" 192.168.177.132 ansible_port=22 ansible_user="root" ansible_ssh_pass="moxi" ; 單 master 節點不需要進行負載均衡,lb節點組留空。 [lb] ; 注意etcd集群必須是1,3,5,7...奇數個節點 [etcd] 192.168.177.130 192.168.177.131 192.168.177.132 [kube-master] 192.168.177.130 [kube-worker] 192.168.177.130 192.168.177.131 192.168.177.132 ; 預留組,后續添加master節點使用 [new-master] ; 預留組,后續添加worker節點使用 [new-worker] ; 預留組,后續添加etcd節點使用 [new-etcd] ; 預留組,后續刪除worker角色使用 [del-worker] ; 預留組,后續刪除master角色使用 [del-master] ; 預留組,后續刪除etcd角色使用 [del-etcd] ; 預留組,后續刪除節點使用 [del-node] ;-------------------------------------- 以下為基礎信息配置 ------------------------------------; [all:vars] ; 是否跳過節點物理資源校驗,Master節點要求2c2g以上,Worker節點要求2c4g以上 skip_verify_node=true ; kubernetes版本 kube_version="1.18.14" ; 負載均衡器 ; 有 nginx、openresty、haproxy、envoy 和 slb 可選,默認使用 nginx ; 為什么單 master 集群 apiserver 也使用了負載均衡請參與此討論: https://github.com/TimeBye/kubeadm-ha/issues/8 lb_mode="nginx" ; 使用負載均衡后集群 apiserver ip,設置 lb_kube_apiserver_ip 變量,則啟用負載均衡器 + keepalived ; lb_kube_apiserver_ip="192.168.56.15" ; 使用負載均衡后集群 apiserver port lb_kube_apiserver_port="8443" ; 網段選擇:pod 和 service 的網段不能與服務器網段重疊, ; 若有重疊請配置 `kube_pod_subnet` 和 `kube_service_subnet` 變量設置 pod 和 service 的網段,示例參考: ; 如果服務器網段為:10.0.0.1/8 ; pod 網段可設置為:192.168.0.0/18 ; service 網段可設置為 192.168.64.0/18 ; 如果服務器網段為:172.16.0.1/12 ; pod 網段可設置為:10.244.0.0/18 ; service 網段可設置為 10.244.64.0/18 ; 如果服務器網段為:192.168.0.1/16 ; pod 網段可設置為:10.244.0.0/18 ; service 網段可設置為 10.244.64.0/18 ; 集群pod ip段,默認掩碼位 18 即 16384 個ip kube_pod_subnet="10.244.0.0/18" ; 集群service ip段 kube_service_subnet="10.244.64.0/18" ; 分配給節點的 pod 子網掩碼位,默認為 24 即 256 個ip,故使用這些默認值可以納管 16384/256=64 個節點。 kube_network_node_prefix="24" ; node節點最大 pod 數。數量與分配給節點的 pod 子網有關,ip 數應大于 pod 數。 ; https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr kube_max_pods="110" ; 集群網絡插件,目前支持flannel,calico network_plugin="calico" ; 若服務器磁盤分為系統盤與數據盤,請修改以下路徑至數據盤自定義的目錄。 ; Kubelet 根目錄 kubelet_root_dir="/var/lib/kubelet" ; docker容器存儲目錄 docker_storage_dir="/var/lib/docker" ; Etcd 數據根目錄 etcd_data_dir="/var/lib/etcd" ``` #### 升級內核 修改完配置文件后建議升級內核 ```sh ansible-playbook -i example/hosts.s-master.ip.ini 00-kernel.yml ``` 內核升級完畢后重啟所有節點 在master node1 node2上執行 ```sh reboot ``` ## 開始部署k8s 等待所有的節點重啟完成后進入腳本目錄 ``` cd kubeadm-ha ``` ### 執行一鍵部署命令 ```sh ansible-playbook -i example/hosts.s-master.ip.ini 90-init-cluster.yml ``` ### 查看節點運行情況 ```sh kubectl get nodes ``` 等待所有節點ready 即為創建成功 ``` NAME STATUS ROLES AGE VERSION 192.168.28.128 Ready etcd,worker 2m57s v1.18.14 192.168.28.80 Ready etcd,master,worker 3m29s v1.18.14 192.168.28.89 Ready etcd,worker 2m57s v1.18.14 ``` ### 集群重置 如果部署失敗了,想要重置整個集群【包括數據】,執行下面腳本 ```bash ansible-playbook -i example/hosts.s-master.ip.ini 99-reset-cluster.yml ``` ## 部署kuboard ### 安裝Docker 因為我們需要拉取鏡像,所以需要在服務器提前安裝好Docker,首先配置一下Docker的阿里yum源 ```bash cat >/etc/yum.repos.d/docker.repo<<EOF [docker-ce-edge] name=Docker CE Edge - \$basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/edge enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg EOF ``` 然后yum方式安裝docker ```bash # yum安裝 yum -y install docker-ce # 查看docker版本 docker --version # 開機自啟 systemctl enable docker # 啟動docker systemctl start docker ``` 配置docker的鏡像源 ```bash cat >> /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"] } EOF ``` 然后重啟docker ```bash systemctl restart docker ``` ## 安裝Kuboard【可選】 ### 簡介 **Kuboard** 是一款免費的 **Kubernetes** 圖形化管理工具,力圖幫助用戶快速在 **Kubernetes** 上落地微服務。 Kuboard文檔:https://kuboard.cn/ ### 安裝 `在master節點執行` ```sh kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml kubectl apply -f https://addons.kuboard.cn/metrics-server/0.3.7/metrics-server.yaml ``` 查看 Kuboard 運行狀態 ``` kubectl get pods -l k8s.kuboard.cn/name=kuboard -n kube-system ``` 輸出結果如下所示。注意:如果是 `ContainerCreating` 那么需要等待一會 ``` NAME READY STATUS RESTARTS AGE kuboard-74c645f5df-cmrbc 1/1 Running 0 80s ``` ### 訪問Kuboard Kuboard Service 使用了 NodePort 的方式暴露服務,NodePort 為 32567;您可以按如下方式訪問 Kuboard。 ```bash # 格式 http://任意一個Worker節點的IP地址:32567/ # 例如,我的訪問地址如下所示 http://192.168.177.130:32567/ ``` 頁面如下所示: ![image-20210107211525789](https://img.kancloud.cn/12/6e/126eb49db81f7473c99491afcdd6f651_1914x727.png) 第一次訪問需要輸入token 我們獲取一下 **token**, `在master節點執行` ```sh echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d) ``` 獲取到的 **token**,然后粘貼到框中,我的 **token** 格式如下: ```bash eyJhbGciOiJSUzI1NiIsImtpZCI6ImY1eUZlc0RwUlZha0E3LWZhWXUzUGljNDM3SE0zU0Q4dzd5R3JTdXM2WEUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tMmJsamsiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzhlZDRmNDktNzM0Zi00MjU1LTljODUtMWI5MGI4MzU4ZWMzIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.MujbwGnkL_qa3H14oKDT1zZ5Fzt16pWoaY52nT7fV5B2nNIRsB3Esd18S8ztHUJZLRGxAhBwu-utToi2YBb8pH9RfIeSXMezFZ6QhBbp0n5xYWeYETQYKJmes2FRcW-6jrbpvXlfUuPXqsbRX8qrnmSVEbcAms22CSSVhUbTz1kz8C7b1C4lpSGGuvdpNxgslNFZTFrcImpelpGSaIGEMUk1qdjKMROw8bV83pga4Y41Y6rJYE3hdnCkUA8w2SZOYuF2kT1DuZuKq3A53iLsvJ6Ps-gpli2HcoiB0NkeI_fJORXmYfcj5N2Csw6uGUDiBOr1T4Dto-i8SaApqmdcXg ``` 最后即可進入 **kuboard** 的 **dashboard** 界面 ![image-20210107211713726](https://img.kancloud.cn/6e/1d/6e1d64daed3e01010ff1f3421e87a1e9_1925x812.png) ### 卸載Kuboard 當我們 **kuboard** 不想使用的時候,我們就可以直接卸載 ```bash kubectl delete -f https://kuboard.cn/install-script/kuboard.yaml kubectl delete -f https://addons.kuboard.cn/metrics-server/0.3.7/metrics-server.yaml ``` ## Rancher部署【可選】 > kuboard和rancher建議部署其中一個 ### helm安裝 使用helm部署rancher會方便很多,所以需要安裝helm ```bash curl -O http://rancher-mirror.cnrancher.com/helm/v3.2.4/helm-v3.2.4-linux-amd64.tar.gz tar -zxvf helm-v3.2.4-linux-amd64.tar.gz mv linux-amd64/helm /usr/local/bin ``` #### 驗證 ```bash helm version ``` 輸入以下內容說明helm安裝成功 ```bash version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"} ``` ### 添加rancher chart倉庫 ```bash helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable helm repo update ``` ### 安裝rancher ```bash helm install rancher rancher-stable/rancher \ --create-namespace \ --namespace cattle-system \ --set hostname=rancher.local.com ``` ##### 等待 Rancher 運行: ```bash kubectl -n cattle-system rollout status deploy/rancher ``` 輸出信息: ```bash Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available... deployment "rancher" successfully rolled out ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看