最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

centos搭建k8s環(huán)境詳細步驟及常用命令

 更新時間:2024年01月04日 15:00:19   作者:進擊的Coders  
kubernetes是google開源的容器集群管理系統(tǒng),提供應用部署、維護、擴展機制等功能,利用kubernetes能方便管理跨集群運行容器化的應用,這篇文章主要給大家介紹了關于centos搭建k8s環(huán)境詳細步驟及常用命令的相關資料,需要的朋友可以參考下

前言

這篇文章講解如何在centos搭建k8s環(huán)境,主要內容包括docker環(huán)境、docker私有鏡像倉庫搭建、k8s環(huán)境搭建三個部分。

一、環(huán)境準備

1.1 安裝要求

部署k8s集群需要以下條件:

  • 至少三臺服務器,使用Centos7版本操作系統(tǒng)。
  • 內存大于等于2G,CPU大于等于2核,硬盤大于等于30G。
  • 需要下載鏡像,因此必須能夠訪問外網。
  • 禁止swap分區(qū)。

1.2 準備環(huán)境

  • 新安裝的Centos7.9服務器需要配置靜態(tài)網絡:
    打開網絡配置文件:
cd /etc/sysconfig/network-scripts/

將以下內容添加進去,其中BOOTPROTO="static"表示靜態(tài)網絡,NAME和DEVICE填網卡驅動如果沒有驅動需要手動安裝即可;下面添加IP、子網掩碼以及網關、DNS等內容。

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp8s0"
DEVICE="enp8s0"
ONBOOT="yes"
IPADDR="192.168.1.180"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="192.168.1.1"
  • 由于之前已經有三臺服務器主機名分別是master、node1、node2,因此本次安裝三臺服務器依次為node3、node4、node5。
角色名稱IP
主節(jié)點node3192.168.1.180
子節(jié)點1node4192.168.1.181
子節(jié)點2node5192.168.1.182
  • 在新搭建的centos7.9操作系統(tǒng)上進行初始化:
#永久關閉防火墻
systemctl stop firewalld
systemctl disable firewalld

#關閉swap
sed -ri 's/.*swap.*/#&/' /etc/fstab

# 三臺服務器設置主機名
hostnamectl set-hostname <hostname>

#三臺服務器添加hosts
192.168.1.180 node3
192.168.1.181 node4
192.168.1.182 node5

一、Docker環(huán)境

Docker是一種較新的虛擬化方式,使用容器技術和宿主機共享硬件資源及操作系統(tǒng),實現(xiàn)資源的動態(tài)分配,在彼此隔離的資源中運行應用程序。容器包含應用和其所有的依賴包,所有容器共享操作系統(tǒng)內核。使用Docker容器可保證應用程序快速、可靠、一致地部署,其間不受部署環(huán)境的影響。

1.1 Docker安裝

k8s使用的容器為Docker,需首先安裝Docker環(huán)境。

# 安裝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-18.06.1.ce-3.el7

# 檢查Docker是否安裝成功
docker --version

# 啟動并設置Docker開機自啟動
systemctl enable docker && systemctl start docker

# 添加Docker阿里云鏡像倉庫
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://xigtegnc.mirror.aliyuncs.com"]
}
EOF

1.2 Docker 私有鏡像倉庫

Docker私有鏡像倉庫使用官方提供的registry完成

# 拉取registry鏡像
docker pull registry

# 啟動registry鏡像,確定啟動方式、是否重啟、以及掛載目錄、容器名字
docker run -itd -p 5000:5000 --restart always -v /opt/data/registry/:/var/lib/registry --name registry registry

# 驗證是否搭建成功,瀏覽器打開網址:http://IP:port/v2/_catalog,成功說明鏡像倉庫搭建成功。
http://192.168.1.180:5000/v2/_catalog

# 將鏡像發(fā)布到倉庫中
# 1、docker tag命令給鏡像打標簽:docker tag imageName:version: IP:Port/tagedImageName:tagedVersion
docker tag nginx:latest 192.168.1.180:5000/mynginx:1.0
# 2、將鏡像推送至倉庫:docker push IP:Port/tagedImageName:tagedVersion
docker push 192.168.1.180:5000/mynginx:1.0
# 3、驗證私有倉庫是否已經存在該鏡像:http://IP:port/v2/_catalog
http://192.168.1.180:5000/v2/_catalog
# 4、從私有倉庫拉取鏡像:docker pull IP:Port/tagedImageName:tagedVersion

從其他服務器發(fā)布鏡像到Docker私有倉庫時,報錯:server gave HTTP response to HTTPS client,解決方法:在推送鏡像的服務器配置insecure-registries

vim /etc/docker/daemon.json

# 添加insecure-registries
{
"registry-mirrors": ["https://xigtegnc.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.1.180:5000","http://47.104.139.172:5000"]
}

從私有倉庫拉取鏡像時,如果Docker版本大于等于1.3.x,會有無法建立連接的報錯。原因:Docker1.3.x之后,docker registry交互的默認方式為HTTPS,但是搭建的私有倉庫默認使用HTTP服務,解決辦法,在私有鏡像所在服務器的docker.service 中添加上 insecure-registry:

vi /usr/lib/systemd/system/docker.service
# 找到ExecStart位置,在后面加上  --insecure-registry IP:Port
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.180:5000
# 重啟服務
systemctl daemon-reload     
systemctl restart docker

到此Docker環(huán)境,Docker私有鏡像環(huán)境,以及向私有鏡像推鏡像,從私有鏡像拉鏡像內容已完成,下一步是k8s環(huán)境部署。

二、K8S環(huán)境部署

  • 添加阿里云YUM軟件源,加快下載速度。
# 添加阿里云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
  • 安裝kubeadm、kubectl和kubelet
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
systemctl enable kubelet
  • 集群初始化,在master執(zhí)行
kubeadm init \
  --apiserver-advertise-address=192.168.1.180 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.18.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16
  • 使用kubectl工具,在master執(zhí)行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 查看集群所有nodes
kubectl get nodes
  • 向k8s集群中添加節(jié)點
    在節(jié)點上執(zhí)行以下命令,需復制上面master節(jié)點操作生成的真實命令。
kubeadm join 192.168.1.11:6443 --token esce21.q6hetwm8si29qxwn \
    --discovery-token-ca-cert-hash sha256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5
  • 部署CNI網絡插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 查看是否部署成功
kubectl get pods -n kube-system
  • 安裝NFS
# 在選定的NFS服務器上執(zhí)行
yum install nfs-utils -y
# 設置共享目錄
/usr/project/data/nfs
# 將共享目錄以讀寫權限暴露給需要使用該NFS的主機
vim /etc/exports
# 加入以下內容
/usr/project/data/nfs 192.168.1.0/24(rw,no_root_squash,no_all_squash,sync)
# 啟動NFS服務
systemctl restart nfs
  • 測試k8s集群
    在k8s集群中創(chuàng)建一個nginx的pod進行校驗
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
# 可通過 http: //NodeIP:Port形式訪問

三、Docker常用命令

# docker系統(tǒng)操作
# 啟動、關閉、重啟docker
systemctl start docker
systemctl stop docker
systemctl restart docker
# 設置docker開機自啟動
systemctl enable docker
# 查看docker信息
docker version
docker info

# 鏡像
# 從鏡像倉庫拉取鏡像
docker pull IP:Port/imageName:imageTag
docker pull 192.168.1.180:5000/aengus/flow:v1.0
# 如果不使用IP:Port,默認從docker官方倉庫拉取
docker pull nginx
# 查看所有鏡像
docker images
# 刪除鏡像(不被任何容器使用方可刪除)
docker rmi imageName
# 強制刪除鏡像
docker image rm imageName
# 使用Dockerfile制作鏡像
docker build -t imageName:imageTag .
# 為鏡像打標簽
docker tag imageName:imageTag IP:Port/tagedImageName:tagedImageTag
# 向私有倉庫推送鏡像
docker push IP:Port/tagedImageName:tagedImageTag

# 容器
# 查看正在運行的容器
docker ps
# 查看所有容器
docker ps -a
# 進入容器(只能進入正在運行的容器,-it后面跟容器id)
docker exec -it b648cde72e9c /bin/bash
# 如果上條命令不能進入,可以嘗試
docker exec -it b648cde72e9c /bin/sh
# 查看容器日志
docker logs -f containerId
# 啟動容器
docker run -itd -p 5000:5000 --restart always -v /opt/data/registry/:/var/lib/registry --name registry registry 
# -i: 以交互模式運行容器; -t: 為容器重新分配一個偽輸入終端 -it通常連用。 -d:后臺運行容器; -p:指定端口映射 宿主機端口:容器端口; --restart always:在容器退出時總是重啟; -v:目錄映射 宿主機目錄:容器目錄; --name:容器名字 最后的registry指定使用的鏡像為registry
# 停止容器
docker stop containerId
# 刪除容器
docker rm -f containerId
# 啟動容器
docker start containerId
# 重啟容器
docker restart containerId
#  刪除異常停止的容器
docker rm `docker ps -a | grep Exited | awk '{print $1}'`
# 清除所有無容器使用的鏡像和容器,包括容器臨時停止。此命令會刪除無用容器,再刪除無用鏡像,需慎用
docker system prune -a

四、K8S常用命令

# 查看命名空間
kubectl get ns
# 創(chuàng)建命名空間
kubectl create namespace heu

# kubectl語法
kubectl [command] [TYPE] [NAME] [flags]
# command:指定要在資源上執(zhí)行的操作例如create、get、describe、delete、apply等; type:指定資源類型(pod、node、services、deployment); name: 指定資源名稱; flags:可選參數,例如使用-n指定命名空間

# 以下命令均為操作某一命名空間下的資源
# 查看資源命令 get
# 查看指定命名空間下的pod
kubectl get pod -n heu
# 查看指定命名空間下的deployment
kubectl get deployment-n heu
# 查看指定命名空間下的service
kubectl get service -n heu
# 查看指定命名空間下的configMap
kubectl get configmap -n heu
# 查看指定命名空間下的secret
kubectl get secret -n heu

# 查看資源詳細信息 describe
kubectl describe pod mynginx -n heu  #查看pod的具體運行情況
kubectl describe deployment mynginx -n heu   #了解deployment的詳細信息
kubectl describe replicaset mynginx -n heu  #了解replicaset的詳細信息
kubectl describe secret mynginx -n heu    #查看secret信息
kubectl describe configmap mynginx -n heu  #查看configmap信息

# 通過配置文件部署資源
kubectl apply -f gateway.yaml
# 查看pod日志:
kubectl logs podId -n heu
# 進入容器
kubectl exec -it podId -n heu /bin/bash
# 縮放副本數量
kubectl scale deployment mynginx --replicas=2

# 刪除資源 delete 
kubectl delete podmynginx -n heu # 單純刪除pod可能無法刪除,原因是deployment會維持重復數量
kubectl delete deployment mynginx -n heu
kubectl delete service mynginx -n heu
kubectl delete configmap mynginx -n heu
# 刪除所有
kubectl delete deployment --all -n heu
kubectl delete service --all -n heu
kubectl delete configmap --all -n heu

總結

文章對K8s環(huán)境的搭建進行了描述,給出Docker、Docker倉庫、k8s環(huán)境的搭建步驟,并給出常見報錯和解決辦法。

到此這篇關于centos搭建k8s環(huán)境詳細步驟及常用命令的文章就介紹到這了,更多相關centos搭建k8s環(huán)境內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Kubernetes k8s configmap 容器技術解析

    Kubernetes k8s configmap 容器技術解析

    這篇文章主要為大家介紹了k8s configmap 容器技術解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • kubernetes?部署dashboard最新詳細步驟

    kubernetes?部署dashboard最新詳細步驟

    這篇文章主要介紹了kubernetes?部署dashboard最新詳細步驟,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • k8s應用監(jiān)控探針詳解

    k8s應用監(jiān)控探針詳解

    這篇文章主要為大家介紹了k8s應用監(jiān)控探針的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • K8s容器的定向調度與親和性詳解

    K8s容器的定向調度與親和性詳解

    這篇文章主要介紹了K8s容器的定向調度與親和性,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • kubernetes中pod的調度親和性affinity詳解

    kubernetes中pod的調度親和性affinity詳解

    本文簡要介紹了Kubernetes中的三種親和性機制:節(jié)點親和性(控制Pod調度到指定節(jié)點)、Pod親和性(與特定Pod共處同一節(jié)點)和Pod反親和性(避免與特定Pod共處同一節(jié)點),并通過示例說明了其配置方式及實際調度效果
    2025-09-09
  • k8s強制刪除一個Pod的詳細步驟

    k8s強制刪除一個Pod的詳細步驟

    有時候遇到node宕機或者失聯(lián)太久導致pod一直處于Terminating狀態(tài),kubectl?delete又刪不掉,其實這個pod已經確定已經死了,需要強制把他摘掉,這篇文章主要給大家介紹了關于k8s強制刪除一個Pod的詳細步驟,需要的朋友可以參考下
    2024-11-11
  • 關于NetworkPolicy工作原理解讀

    關于NetworkPolicy工作原理解讀

    NetworkPolicy是Kubernetes中用于控制Pod間網絡流量的資源對象,依賴于支持NetworkPolicy的CNI插件來實現(xiàn)流量控制,它通過定義入口和出口規(guī)則來允許或拒絕Pod間的通信,實現(xiàn)網絡微分段,保障集群網絡安全,NetworkPolicy遵循“默認拒絕,顯式允許”的原則
    2025-10-10
  • kubeadm部署k8s集群全過程

    kubeadm部署k8s集群全過程

    本文詳細描述了如何在VMware虛擬機上基于CentOS8操作系統(tǒng)搭建Kubernetes集群,包括環(huán)境準備、Docker安裝、Kubernetes組件安裝、網絡插件配置以及KuboardUI的安裝和訪問
    2025-01-01
  • K8S部署rocketmq5全過程

    K8S部署rocketmq5全過程

    在開發(fā)環(huán)境中部署RocketMQ 5并驗證新版本代理特性,遇到一系列問題,包括存儲權限、主從副本配置和命名空間問題,通過修改配置文件和PV設置,最終解決了這些問題,成功部署了RocketMQ集群
    2025-01-01
  • 通過kubernetes部署nginx+php網站環(huán)境過程

    通過kubernetes部署nginx+php網站環(huán)境過程

    本文詳細介紹了如何在Kubernetes中部署Nginx+PHP網站環(huán)境,包括環(huán)境準備、部署步驟、Service、ConfigMap、Ingress等配置,并提供了具體的YAML文件示例和命令,通過這些步驟,可以實現(xiàn)高可用、可擴展的Web服務
    2026-01-01

最新評論

衢州市| 兴海县| 韶山市| 兰考县| 油尖旺区| 博兴县| 融水| 万州区| 棋牌| 多伦县| 大田县| 龙州县| 甘洛县| 花莲市| 怀柔区| 河西区| 贞丰县| 百色市| 梧州市| 漳平市| 克东县| 辽宁省| 寿阳县| 丰宁| 博罗县| 云霄县| 平陆县| 双桥区| 浮山县| 沙田区| 土默特左旗| 措美县| 丰城市| 鲜城| 松潘县| 吉安县| 正定县| 安宁市| 孟州市| 洛浦县| 襄城县|