亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        Linux安裝Docker、K8s(kubeadm部署k8s集群)

        Linux安裝Docker、K8s(kubeadm部署k8s集群)

        通過kubeadm部署一個(gè)k8s集群

        1 安裝前準(zhǔn)備

        具體步驟參見 我的另一篇博文。Linux安裝Docker、K8s(環(huán)境準(zhǔn)備和Docker安裝)

        • 一臺(tái)兼容的 Linux 主機(jī)。Kubernetes 項(xiàng)目為基于 Debian 和 Red Hat 的 Linux 發(fā)行版以及一些不提供管理器的發(fā)行版提供通用的指令
        • 每臺(tái)機(jī)器 2 GB 或更多的 RAM (如果少于這個(gè)數(shù)字將會(huì)影響你應(yīng)用的運(yùn)行內(nèi)存)
        • 2 CPU 核或更多
        • 集群中的所有機(jī)器的網(wǎng)絡(luò)彼此均能相互連接(公網(wǎng)和內(nèi)網(wǎng)都可以)
        • 節(jié)點(diǎn)之中不可以有重復(fù)的主機(jī)名、MAC 地址或 product_uuid。請(qǐng)參見這里了解更多詳細(xì)信息。
        • 開啟機(jī)器上的某些端口。請(qǐng)參見這里 了解更多詳細(xì)信息。
        • 禁用交換分區(qū)。為了保證 kubelet 正常工作,你 必須 禁用交換分區(qū)。
        • 確保每個(gè)節(jié)點(diǎn)上 MAC 地址和 product_uuid 唯一性你可以使用命令 ip link 或 ifconfig -a 獲取網(wǎng)絡(luò)接口的時(shí)間 MAC 地址可以使用 sudo cat /sys/class/dmi/id/product_uuid 命令對(duì) product_uuid 校驗(yàn)一般來講,硬件設(shè)備會(huì)擁有唯一的地址,但是有些虛擬機(jī)的地址可能會(huì)重復(fù)。 Kubernetes 使用這些值來唯一確定集群中的節(jié)點(diǎn)。 如果這些值在每個(gè)節(jié)點(diǎn)上不唯一,可能會(huì)導(dǎo)致安裝 失敗。
        • 檢查網(wǎng)絡(luò)適配器如果你有一個(gè)以上的網(wǎng)絡(luò)適配器,同時(shí)你的 Kubernetes 組件通過默認(rèn)路由不可達(dá),我們建議你預(yù)先添加 IP 路由規(guī)則,這樣 Kubernetes 集群就可以通過對(duì)應(yīng)的適配器完成連接。
        • 允許 iptables 檢查橋接流量確保 br_netfilter 模塊被加載。這一操作可以通過運(yùn)行 lsmod | grep br_netfilter 來完成。若要顯式加載該模塊,可執(zhí)行 sudo modprobe br_netfilter。為了讓你的 Linux 節(jié)點(diǎn)上的 iptables 能夠正確地查看橋接流量,你需要確保在你的 sysctl 配置中將 net.bridge.bridge-nf-call-iptables 設(shè)置為 1。例如

        cat <<EOF | sudo tee /etc/modules-load.d/k8s.confbr_netfilterEOFcat <<EOF | sudo tee /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsudo sysctl –system

        2 添加阿里云yum軟件源

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

        3 安裝kubeadm和kubelet

        版本號(hào)最好選擇一個(gè)穩(wěn)定版本,文檔使用的是1.21.3

        yum install -y kubelet-1.21.3 kubeadm-1.21.3systemctl enable kubelet

        4 部署master節(jié)點(diǎn)

        在Master節(jié)點(diǎn)上輸入執(zhí)行以下命令:

        kubeadm init –apiserver-advertise-address=192.168.XXX.xxx –image-repository registry.aliyuncs.com/google_containers –kubernetes-version v1.21.3 –service-cidr=10.96.0.0/12 –pod-network-cidr=10.244.0.0/16 –ignore-preflight-errors=all

        參數(shù)說明

        • apiserver-advertise-address 集群通告地址
        • image-repository 由于默認(rèn)拉取鏡像地址k8s.gcr.io國內(nèi)無法訪問,這里指定阿里云鏡像倉庫地址
        • kubernetes-version K8s版本,與上面安裝的一致
        • service-cidr 集群內(nèi)部虛擬網(wǎng)絡(luò),Pod統(tǒng)一訪問入口
        • pod-network-cidr Pod網(wǎng)絡(luò),與下面部署的CNI網(wǎng)絡(luò)組件yaml中保持一致

        初始化完成后,最后會(huì)輸出一個(gè)join命令,先記住,下面用。

        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/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:export KUBECONFIG=/etc/kubernetes/admin.confYou 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.xxx.xxx:6443 –token 46ok5q.cnv0yj8p1arec3is –discovery-token-ca-cert-hash sha256:0cae5db1df5fc4796147583f25750faeec420bd82fb8cb7b2b4121d4d4a0066e

        5.加入kubernetes node

        在Node節(jié)點(diǎn)(示例中為192.168.xxx.xxx,192.168.xxx.xxx)上執(zhí)行。

        向集群添加新節(jié)點(diǎn),執(zhí)行之前記錄的kubeadm join命令:

        kubeadm join 192.168.xxx.xxx:6443 –token 46ok5q.cnv0yj8p1arec3is –discovery-token-ca-cert-hash sha256:0cae5db1df5fc4796147583f25750faeec420bd82fb8cb7b2b4121d4d4a0066e

        6 部署容器網(wǎng)絡(luò)

        Calico是目前Kubernetes主流的網(wǎng)絡(luò)方案。wget https://docs.projectcalico.org/manifests/calico.yaml,以下載yaml。需要修改字段CALICO_IPV4POOL_CIDR,與前面kubeadm init命令中的 –pod-network-cidr參數(shù)一樣。

        修改完后文件后

        kubectl apply -f calico.yaml

        執(zhí)行部署容器網(wǎng)絡(luò)。稍等幾分鐘,然后執(zhí)行kubectl get pods -n kube-system查看部署進(jìn)度。等Calico Pod都Running,節(jié)點(diǎn)也會(huì)準(zhǔn)備就緒。

        7 查看kubernetes集群

        查看集群信息

        查看集群節(jié)點(diǎn)信息

        8 部署控制臺(tái)

        Dashboard是官方提供的一個(gè)UI,可用于基本管理K8s資源,dashboard GitHub地址https://github.com/kubernetes/dashboard。如果GitHub訪問較慢,可以參考我的另一篇文章GitHub 加速器(Watt Toolkit)

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

        默認(rèn)Dashboard只能集群內(nèi)部訪問,vi recommended.yaml修改Service類型為NodePort,方便集群外的機(jī)器訪問。

        kind: ServiceapiVersion: v1metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboardspec:ports:- port: 443targetPort: 8443nodePort: 30443selector:k8s-app: kubernetes-dashboardtype: NodePortkubectl apply -f recommended.yamlkubectl get pods -n kubernetes-dashboard

        待所有pod處于running的狀態(tài)后,創(chuàng)建serviceaccount并綁定默認(rèn)cluster-admin管理員集群角色:

        # 創(chuàng)建用戶kubectl create serviceaccount dashboard-admin -n kube-system# 用戶授權(quán)kubectl create clusterrolebinding dashboard-admin –clusterrole=cluster-admin –serviceaccount=kube-system:dashboard-admin# 獲取用戶Tokenkubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk ‘/dashboard-admin/{print $1}’)

        測(cè)試訪問:https://192.168.xxx.xxx:30443,復(fù)制token后填入,進(jìn)行登錄。

        9 部署問題

        detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at

        [WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at https://kubernetes.io/docs/setup/cri/

        Docker的驅(qū)動(dòng)程序cgroup,修改為systemd驅(qū)動(dòng),修改前 通過

        docker info | grep cgrou

        查看他的驅(qū)動(dòng)信息(原來標(biāo)紅的是cgroupfs)

        執(zhí)行以下命令

        vim /etc/docker/daemon.json{“exec-opts”:[“native.cgroupdriver=systemd”]}

        重啟后查看docker systemctl restart docker

        The connection to the server localhost:8080 was refused – did you specify the right host or port?解決

        • 原因:kubernetes master沒有與本機(jī)綁定,集群初始化的時(shí)候沒有綁定,此時(shí)設(shè)置在本機(jī)的環(huán)境變量即可解決問題。
        • 解決:vim /etc/profile,在底部增加新的環(huán)境變量 export KUBECONFIG=/etc/kubernetes/admin.conf
        • 最后執(zhí)行source /etc/profile 讓新增的環(huán)境變量生效。

        各個(gè)節(jié)點(diǎn)執(zhí)行kubectl –version且報(bào)錯(cuò)如下

        Unable to connect to the server: net/http: TLS handshake timeout

        但是只有master節(jié)點(diǎn)執(zhí)行各種命令延遲較高,其他node節(jié)點(diǎn)正常,通過命令 free -m 發(fā)現(xiàn)主節(jié)點(diǎn)只有45M內(nèi)存,意識(shí)到可能是給虛擬機(jī)的內(nèi)存分小了(虛擬機(jī)分了2G),給虛擬機(jī)新增1G內(nèi)存就解決了

        # 重啟kubelet服務(wù)systemctl daemon-reloadsystemctl restart kubelet

        鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年6月27日 15:03
        下一篇 2022年6月27日 15:03

        相關(guān)推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息