国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

kubernetes(k8s) 安裝與部署

這篇具有很好參考價(jià)值的文章主要介紹了kubernetes(k8s) 安裝與部署。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

版本:kubernetes(k8s) v1.28.2

1 準(zhǔn)備工作

  1. 并準(zhǔn)備主機(jī)名映射。
    設(shè)置好靜態(tài)IP。
    在Ubuntu的/etc/hosts文件中,填入如下內(nèi)容。也可以在Windows的C:\Windows\System32\drivers\etc\hosts文件中填寫相同內(nèi)容。
    192.168.88.131 node1
    192.168.88.132 node2
    192.168.88.133 node3
    
  2. 關(guān)閉防火墻和SELinux。
    • 關(guān)閉防火墻命令如下。
      systemctl stop firewalld
      systemctl disable firewalld
      
      可使用命令systemctl status firewalld查看防火墻狀態(tài)。
    • 關(guān)閉SELinux命令如下。
      # 方法一:
      sudo vim /etc/selinux/config
      # 將SELINUX=enforcing改為SELINUX=disabled
      # 保存退出后,重啟虛擬機(jī)即可,千萬要注意disabled單詞不要寫錯(cuò),不然無法啟動(dòng)系統(tǒng)
      # 方法二:
      setenforce 0
      
  3. 關(guān)閉swap分區(qū)
    臨時(shí)關(guān)閉:sudo swapoff -a
    永久關(guān)閉swap:sudo sed -ri 's/.*swap.*/#&/' /etc/fstab
  4. 設(shè)置內(nèi)核參數(shù)
    安裝bridge-utils,命令為sudo apt-get install -y bridge-utils。
    使用 modprobe 加載,命令為udo modprobe br_netfilter。使用命令lsmod | grep br_netfilter就能看到 br_netfilter 模塊。
    使用命令sudo sysctl -a | grep bridge確認(rèn)內(nèi)核參數(shù) net.bridge.bridge-nf-call-iptables 是否為 1。若不為1,使用下面的命令來修改:
    cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    sudo sysctl --system
    

2. 安裝docker

  1. 安裝見其他筆記:https://blog.csdn.net/White_Ink_/article/details/133548415?spm=1001.2014.3001.5501
  2. 修改cgroup管理器
    ubuntu 系統(tǒng),debian 系統(tǒng),centos7 系統(tǒng),都是使用 systemd 初始化系統(tǒng)的。systemd 這邊已經(jīng)有一套 cgroup 管理器了,如果容器運(yùn)行時(shí)和 kubelet 使用 cgroupfs,此時(shí)就會(huì)存在 cgroups 和 systemd 兩種 cgroup 管理器。也就意味著操作系統(tǒng)里面存在兩種資源分配的視圖,當(dāng)操作系統(tǒng)上存在 CPU,內(nèi)存等等資源不足的時(shí)候,操作系統(tǒng)上的進(jìn)程會(huì)變得不穩(wěn)定。
    在/etc/docker/daemon.json中添加以下內(nèi)容。
      "exec-opts": [
        "native.cgroupdriver=systemd"
      ], 
    

3. 安裝kubelet、kubeadm、kubectl

  1. 設(shè)置阿里鏡像源
    sudo apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
    sudo curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
    sudo tee /etc/apt/sources.list.d/kubernetes.list <<EOF 
    deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
    EOF
    sudo apt-get update
    
  2. 安裝kubeadm kubectl
    sudo apt-get install -y kubelet kubeadm kubectl
    # 也可以指定安裝版本
    sudo apt-get install -y kubelet-1.28.2 kubeadm-1.28.2 kubectl-1.28.2
    # 阻止自動(dòng)更新(apt upgrade時(shí)忽略)。所以更新的時(shí)候先unhold,更新完再hold。
    sudo apt-mark hold kubelet kubeadm kubectl
    

4. cri環(huán)境配置

  1. 下載
    從github上下載文件。
    或使用命令wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.6/cri-dockerd-0.3.6.amd64.tgz
  2. 解壓
    tar -zxvf cri-dockerd-0.3.6.amd64.tgz
    sudo mv ./cri-dockerd/cri-dockerd /usr/local/bin/
    cri-dockerd --version
    
  3. 配置
    在/etc/systemd/system/cri-dockerd.service中添加以下內(nèi)容。
    [Unit]
    Description=CRI Interface for Docker Application Container Engine
    Documentation=https://docs.mirantis.com
    After=network-online.target firewalld.service docker.service
    Wants=network-online.target
     
    [Service]
    Type=notify
    ExecStart=/usr/local/bin/cri-dockerd --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9 --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --cri-dockerd-root-directory=/var/lib/dockershim --docker-endpoint=unix:///var/run/docker.sock --
    cri-dockerd-root-directory=/var/lib/docker
    ExecReload=/bin/kill -s HUP $MAINPID
    TimeoutSec=0
    RestartSec=2
    Restart=always
    StartLimitBurst=3
    StartLimitInterval=60s
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    TasksMax=infinity
    Delegate=yes
    KillMode=process
    [Install]
    WantedBy=multi-user.target
    
    在/etc/systemd/system/cri-dockerd.socket中添加以下內(nèi)容。
    [Unit]
    Description=CRI Docker Socket for the API
    PartOf=cri-docker.service
    [Socket]
    ListenStream=/var/run/cri-dockerd.sock
    SocketMode=0660
    SocketUser=root
    SocketGroup=docker
    [Install]
    WantedBy=sockets.target
    
  4. 啟動(dòng)服務(wù)
    重新加載配置:sudo systemctl daemon-reload
    設(shè)置為開機(jī)自啟動(dòng):sudo systemctl enable cri-dockerd
    啟動(dòng)服務(wù):sudo systemctl start cri-dockerd
    檢查服務(wù)狀態(tài):sudo systemctl status cri-dockerd

5. 初始化master

  1. 方法一
    這里使用了阿里云的鏡像,然后使用了非默認(rèn)的CIDR,一定要和宿主機(jī)的局域網(wǎng)的CIDR不一樣。
    sudo kubeadm init --kubernetes-version=1.28.2 \
    --apiserver-advertise-address=192.168.221.3 \
    --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
    --service-cidr=10.96.0.0/12 \
    --pod-network-cidr=10.244.0.0/16 \
    --cri-socket=unix:///var/run/cri-dockerd.sock
    
    這里會(huì)生成kubeadm join命令,先記下來,用于work節(jié)點(diǎn)的加入。
  2. 方法二
    生成默認(rèn)配置文件
    kubeadm config print init-defaults > init.default.yaml
    
    可選擇修改配置文件以下內(nèi)容:
    # 修改地址 節(jié)點(diǎn)IP地址
    localAPIEndpoint.advertiseAddress: 192.168.11.190
    # 修改套接字
    nodeRegistration.criSocket: unix:///var/run/cri-dockerd.sock
    # 修改節(jié)點(diǎn)名稱
    nodeRegistration.name: k8s-master1
    # 修改鏡像倉庫地址為國內(nèi)開源鏡像庫
    imageRepository: registry.aliyuncs.com/google_containers
    # 增加podSubnet,由于后續(xù)會(huì)安裝flannel 網(wǎng)絡(luò)插件,該插件必須在集群初始化時(shí)指定pod地址
    # 10.244.0.0/16 為flannel組件podSubnet默認(rèn)值,集群配置與網(wǎng)絡(luò)組件中的配置需保持一致
    networking.podSubnet: 10.244.0.0/16
    
    使用下面命令初始化。
    sudo kubeadm init  --config init.default.yaml
    
  3. non-root用戶使用kubectl
    如果是non-root用戶,執(zhí)行下面命令可使其可以使用kubectl命令。
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

6. 加入work節(jié)點(diǎn)

  1. 加入節(jié)點(diǎn)
    在work節(jié)點(diǎn)上運(yùn)行如下命令。注意是使用上一步生成的。
    kubeadm join 192.168.221.3:6443 --token 16pw7a.7hp1yvbboanjv1ba \
    --cri-socket=unix:///var/run/cri-dockerd.sock \
    --discovery-token-ca-cert-hash sha256:5457a1a48c135a37da0e12e075e444abbbd14b30c179e6fa99c9cf47793fd62c 
    
  2. 驗(yàn)證
    顯示一下信息則加入成功。
    This node has joined the cluster:
    * Certificate signing request was sent to apiserver and a response was received.
    * The Kubelet was informed of the new secure connection details.
    
    在mster節(jié)點(diǎn)上輸入kubectl get nodes查看已經(jīng)加入的節(jié)點(diǎn)。

7. 配置網(wǎng)絡(luò)插件

下面只在master上執(zhí)行。以下選擇其中一個(gè)配置即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-773631.html

7.1 fannal

  1. 獲取fannel的配置文件
    wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
    
  2. 修改文件中quay.io倉庫為quay-mirror.qiniu.com
  3. 使用配置文件啟動(dòng)fannel
    kubectl apply -f kube-flannel.yml
    
  4. 稍等片刻,再次查看集群節(jié)點(diǎn)的狀態(tài)
    kubectl get nodes
    
    結(jié)果為:
    NAME     STATUS   ROLES    AGE     VERSION
    master   Ready    master   15m     v1.17.4
    node1    Ready       8m53s   v1.17.4
    node2    Ready       8m50s   v1.17.4
    

7.2 weave net

  1. 部署weave net
    kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
    
  2. 再次查看集群節(jié)點(diǎn)的狀態(tài)
    kubectl get nodes
    
    結(jié)果為:
    NAME     STATUS   ROLES    AGE     VERSION
    master   Ready    master   15m     v1.17.4
    node1    Ready       8m53s   v1.17.4
    node2    Ready       8m50s   v1.17.4
    

報(bào)錯(cuò)記錄

  1. [ERROR CRI]: container runtime is not running: output: time=“2023-10-24T19:20:04+08:00” level=fatal msg=“validate service connection: CRI v1 runtime API is not implemented for endpoint “unix:///var/run/containerd/containerd.sock”: rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService”
    解決: 注釋/etc/containerd/config.toml中的disabled_plugins = ["cri"],并重啟containerd,重啟命令為systemctl restart containerd。
  2. [ERROR Port-10250]: Port 10250 is in use
    解決: systemctl stop kubelet
  3. [kubelet-check] Initial timeout of 40s passed.
    以下是具體內(nèi)容。
    Unfortunately, an error has occurred:
    	timed out waiting for the condition
    
    This error is likely caused by:
    	- The kubelet is not running
    	- The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)
    
    If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
    	- 'systemctl status kubelet'
    	- 'journalctl -xeu kubelet'
    
    Additionally, a control plane component may have crashed or exited when started by the container runtime.
    To troubleshoot, list all containers using your preferred container runtimes CLI.
    Here is one example how you may list all running Kubernetes containers by using crictl:
    	- 'crictl --runtime-endpoint unix:///var/run/cri-dockerd.sock ps -a | grep kube | grep -v pause'
    	Once you have found the failing container, you can inspect its logs with:
    	- 'crictl --runtime-endpoint unix:///var/run/cri-dockerd.sock logs CONTAINERID'
    error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster
    To see the stack trace of this error execute with --v=5 or higher
    
    解決: 修改/var/run/cri-dockerd.sock權(quán)限,sudo chmod 777 /var/run/cri-dockerd.sock。

到了這里,關(guān)于kubernetes(k8s) 安裝與部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • k8s 1.28版本二進(jìn)制安裝

    k8s 1.28版本二進(jìn)制安裝

    ??二進(jìn)制安裝比較復(fù)雜,但是也比較穩(wěn)定,適用于線上環(huán)境使用。 ??本筆記參考自:https://github.com/cby-chen/Kubernetes ,針對(duì)文中內(nèi)容,有部分鏡像無法拉取等,還有一部分有點(diǎn)小問題,自己有做一些小的提示、修改。建議參考本文安裝即可。 kubernetes(k8s)二進(jìn)制高可用安

    2024年02月04日
    瀏覽(26)
  • K8S(1.28)--部署ingress-nginx(1.9.1)

    K8S(1.28)--部署ingress-nginx(1.9.1)

    原文網(wǎng)址:K8S(1.28)--部署ingress-nginx(1.9.1)-CSDN博客 本文介紹K8S部署ingress-nginx的方法。 本文使用的K8S和ingress-nginx都是最新的版本。 官網(wǎng)地址 https://kubernetes.github.io/ingress-nginx/deploy/ Ingress里Nginx的代理流程: 1.確定版本 首先確定版本:https://github.com/kubernetes/ingress-nginx 我K8S是1.2

    2024年02月20日
    瀏覽(28)
  • 基于containerd容器運(yùn)行時(shí),kubeadmin部署k8s 1.28集群

    基于containerd容器運(yùn)行時(shí),kubeadmin部署k8s 1.28集群

    centos7u9 序號(hào) 主機(jī)名 ip地址 CPU 內(nèi)存 硬盤 1 k8s-master1 192.168.1.200 2C 2G 100G 2 k8s-worker1 192.168.1.201 2C 2G 100G 3 k8s-worker2 192.168.1.202 2C 2G 100G 1.3.1主機(jī)名配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 1.3.3主機(jī)名與IP地址解析(hosts) vi /etc/hosts 1.3.4防火墻配置 關(guān)閉防火墻firewalld 1.3.5SELINUX配置 修改

    2024年02月01日
    瀏覽(38)
  • kubernetes(k8s) v1.28.2 安裝與部署

    版本:kubernetes(k8s) v1.28.2 并準(zhǔn)備主機(jī)名映射。 設(shè)置好靜態(tài)IP。 在Ubuntu的/etc/hosts文件中,填入如下內(nèi)容。也可以在Windows的C:WindowsSystem32driversetchosts文件中填寫相同內(nèi)容。 關(guān)閉防火墻和SELinux。 關(guān)閉防火墻命令如下。 可使用命令 systemctl status firewalld 查看防火墻狀態(tài)。 關(guān)閉

    2024年02月03日
    瀏覽(27)
  • k8s(1.28)使用Helm安裝metrics-server

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 提示:這里可以添加本文要記錄的大概內(nèi)容: metrics-server安裝后,可以查看集群的node和pod的CPU和Memory占用情況,非常有用。 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 官網(wǎng)地址:https://github

    2024年02月19日
    瀏覽(41)
  • Kubernetes(K8s 1.28.x)部署---超詳細(xì)

    Kubernetes(K8s 1.28.x)部署---超詳細(xì)

    目錄 一、基礎(chǔ)環(huán)境配置(所有主機(jī)均要配置) 1、配置IP地址和主機(jī)名、hosts解析 2、關(guān)閉防火墻、禁用SELinux 3、安裝常用軟件 4、配置時(shí)間同步 5、禁用Swap分區(qū) 6、修改linux的內(nèi)核參數(shù) 7、配置ipvs功能 二、容器環(huán)境操作 1、定制軟件源 2、安裝最新版docker 3、配置docker加速器 4、

    2024年02月11日
    瀏覽(25)
  • 運(yùn)維高級(jí)學(xué)習(xí)--Kubernetes(K8s 1.28.x)部署

    運(yùn)維高級(jí)學(xué)習(xí)--Kubernetes(K8s 1.28.x)部署

    主機(jī)名規(guī)劃 1.配置IP地址和主機(jī)名、hosts解析 2.關(guān)閉防火墻、禁用SELinux 3.安裝常用軟件 4.時(shí)間同步 5.禁用Swap分區(qū) 6.修改linux的內(nèi)核參數(shù) 7.配置ipvs功能 1.定制軟件源 2.安裝最新版docker 3.配置docker加速器 4.啟動(dòng)docker 定制軟件源(所有主機(jī)操作) 在倉庫中新建項(xiàng)目:google_container

    2024年02月11日
    瀏覽(33)
  • k8s 1.28版本:使用StorageClass動(dòng)態(tài)創(chuàng)建PV,SelfLink 問題修復(fù)

    ?? k8s中提供了一套自動(dòng)創(chuàng)建 PV 的機(jī)制,就是基于 StorageClass 進(jìn)行的 ,通過 StorageClass 可以實(shí)現(xiàn)僅僅配置 PVC,然后交由 StorageClass 根據(jù) PVC 的需求動(dòng)態(tài)創(chuàng)建 PV。 問題: ??使用 k8s 1.28版本,通過 kubectl get pvc ,發(fā)現(xiàn) PVC一直處于 Pending 狀態(tài)。通過 kubectl describe pvc [pvc名稱] 描述

    2024年02月08日
    瀏覽(17)
  • Kubernetes(K8s 1.28.x)部署---創(chuàng)建方式Docker(超詳細(xì))

    Kubernetes(K8s 1.28.x)部署---創(chuàng)建方式Docker(超詳細(xì))

    目錄 一、基礎(chǔ)環(huán)境配置(所有主機(jī)均要配置) 1、配置IP地址和主機(jī)名、hosts解析 2、關(guān)閉防火墻、禁用SELinux 3、安裝常用軟件 4、配置時(shí)間同步 5、禁用Swap分區(qū) 6、修改linux的內(nèi)核參數(shù) 7、配置ipvs功能 二、容器環(huán)境操作 1、定制軟件源 2、安裝最新版docker 3、配置docker加速器 4、

    2024年02月09日
    瀏覽(26)
  • 二進(jìn)制安裝Kubernetes(k8s)v1.28.3

    https://github.com/cby-chen/Kubernetes 開源不易,幫忙點(diǎn)個(gè)star,謝謝了 kubernetes(k8s)二進(jìn)制高可用安裝部署,支持IPv4+IPv6雙棧。 我使用IPV6的目的是在公網(wǎng)進(jìn)行訪問,所以我配置了IPV6靜態(tài)地址。 若您沒有IPV6環(huán)境,或者不想使用IPv6,不對(duì)主機(jī)進(jìn)行配置IPv6地址即可。 不配置IPV6,不影

    2024年02月05日
    瀏覽(63)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包