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

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

這篇具有很好參考價值的文章主要介紹了【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??博主簡介

????云計算領(lǐng)域優(yōu)質(zhì)創(chuàng)作者
????華為云開發(fā)者社區(qū)專家博主
????阿里云開發(fā)者社區(qū)專家博主
??交流社區(qū):運維交流社區(qū) 歡迎大家的加入!

Kubernetes簡介

??Kubernetes(簡稱:k8s) 是Google在2014年6月開源的一個容器集群管理系統(tǒng),使用Go語言開發(fā),用于管理云平臺中多個主機上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡單并且高效,Kubernetes提供了資源調(diào)度、部署管理、服務(wù)發(fā)現(xiàn)、擴容縮容、監(jiān)控,維護等一整套功能。

官網(wǎng)地址: https://kubernetes.io

1 kubernetes架構(gòu)

??Kubernetes具有去中心化的架構(gòu),不會線性處理任務(wù)。它基于聲明性模型運行并實現(xiàn)"所需狀態(tài)"的概念。下面這些步驟說明了Kubernetes的基本過程:

  • 管理員創(chuàng)建應(yīng)用程序的所需狀態(tài)并將其放入清單文件manifest.yml中。
  • 使用CLI或提供的用戶界面將清單文件提供給Kubernetes API Server。 Kubernetes的默認(rèn)命令行工具稱為kubectl。
  • Kubernetes將清單文件(描述了應(yīng)用程序的期望狀態(tài))存儲在稱為鍵值存儲(etcd)的數(shù)據(jù)庫中。
  • Kubernetes隨后在集群內(nèi)的所有相關(guān)應(yīng)用程序上實現(xiàn)所需的狀態(tài)。
  • Kubernetes持續(xù)監(jiān)控集群的元素,以確保應(yīng)用程序的當(dāng)前狀態(tài)不會與所需狀態(tài)有所不同。

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

1.1master節(jié)點

??k8s集群的管理節(jié)點,負(fù)責(zé)管理集群,提供集群的資源數(shù)據(jù)訪問入口。擁有Etcd存儲服務(wù)(可選),運行Api Server進程,Controller Manager服務(wù)進程及Scheduler服務(wù)進程,關(guān)聯(lián)工作節(jié)點Node。

  • API Server

提供了資源對象的唯一操作入口,其他所有組件都必須通過它提供的API來操作資源數(shù)據(jù),只有API Server與存儲通信,其他模塊通過API Server訪問集群狀態(tài)。

  • Scheduler

新建立的Pod進行節(jié)點(node)選擇(即分配機器),負(fù)責(zé)集群的資源調(diào)度。組件抽離,可以方便替換成其他調(diào)度器。

  • Controller

負(fù)責(zé)執(zhí)行各種控制器,目前已經(jīng)提供了很多控制器來保證Kubernetes的正常運行。

  • Cluster state store

Kubernetes默認(rèn)使用etcd作為集群整體存儲,當(dāng)然也可以使用其它的技術(shù)。etcd是一個簡單的、分布式的、一致的key-value存儲,主要被用來共享配置和服務(wù)發(fā)現(xiàn)。etcd提供了一個CRUD操作的REST API,以及提供了作為注冊的接口,以監(jiān)控指定的Node。集群的所有狀態(tài)都存儲在etcd實例中,并具有監(jiān)控的能力,因此當(dāng)etcd中的信息發(fā)生變化時,就能夠快速的通知集群中相關(guān)的組件。

控制器 說明
Replication Controller 管理維護Replication Controller,關(guān)聯(lián)Replication Controller和Pod,保證Replication Controller定義的副本數(shù)
Node Controller 管理維護Node,定期檢查Node的健康狀態(tài),標(biāo)識出(失效|未失效)的Node節(jié)點。
Namespace Controller 管理維護Namespace,定期清理無效的Namespace,包括Namesapce下的API對象,比如Pod、Service等。
Service Controller 管理維護Service,提供負(fù)載以及服務(wù)代理。
EndPoints Controller 管理維護Endpoints,關(guān)聯(lián)Service和Pod,創(chuàng)建Endpoints為Service的后端,當(dāng)Pod發(fā)生變化時,實時更新Endpoints。
Service Account Controller 管理維護Service Account,為每個Namespace創(chuàng)建默認(rèn)的Service Account,同時為Service Account創(chuàng)建Service Account Secret。
Persistent Volume Controller 管理維護Persistent Volume和Persistent Volume Claim,為新的Persistent Volume Claim分配Persistent Volume進行綁定,為釋放的Persistent Volume執(zhí)行清理回收。
DaemonSet Controller 管理維護Daemon Set,負(fù)責(zé)創(chuàng)建Daemon Pod,保證指定的Node上正常的運行Daemon Pod。
Deployment Controller 管理維護Deployment,關(guān)聯(lián)Deployment和Replication Controller,保證運行指定數(shù)量的Pod。當(dāng)Deployment更新時,控制實現(xiàn)Replication Controller和Pod的更新。
Job Controller 管理維護Job,為Jod創(chuàng)建一次性任務(wù)Pod,保證完成Job指定完成的任務(wù)數(shù)目
Pod Autoscaler Controller 實現(xiàn)Pod的自動伸縮,定時獲取監(jiān)控數(shù)據(jù),進行策略匹配,當(dāng)滿足條件時執(zhí)行Pod的伸縮動作。

1.2 Node節(jié)點

??Node節(jié)點是工作節(jié)點監(jiān)聽API Server發(fā)送過來的新的工作分配;他們會執(zhí)行分配給他們的工作,然后將結(jié)果報告給Kubernetes主節(jié)點。

  • Kubelet

負(fù)責(zé)管控容器,Kubelet會從Kubernetes API Server接收Pod的創(chuàng)建請求,啟動和停止容器,監(jiān)控容器運行狀態(tài)并匯報給Kubernetes API Server。

  • Container Runtime

每一個Node都會運行一個Container Runtime,其負(fù)責(zé)下載鏡像和運行容器。Kubernetes本身并不提供容器運行時環(huán)境,但提供了接口,可以插入所選擇的容器運行時環(huán)境。kubelet使用Unix socket之上的gRPC框架與容器運行時進行通信,kubelet作為客戶端,而CRI shim作為服務(wù)器。

  • kube proxy

基于一種公共訪問策略(例如:負(fù)載均衡),服務(wù)提供了一種訪問一群pod的途徑。此方式通過創(chuàng)建一個虛擬的IP來實現(xiàn),客戶端能夠訪問此IP,并能夠?qū)⒎?wù)透明的代理至Pod。每一個Node都會運行一個kube-proxy,kube proxy通過iptables規(guī)則引導(dǎo)訪問至服務(wù)IP,并將重定向至正確的后端應(yīng)用,通過這種方式kube-proxy提供了一個高可用的負(fù)載均衡解決方案。服務(wù)發(fā)現(xiàn)主要通過DNS實現(xiàn)。
??在Kubernetes中,kube proxy負(fù)責(zé)為Pod創(chuàng)建代理服務(wù);引到訪問至服務(wù);并實現(xiàn)服務(wù)到Pod的路由和轉(zhuǎn)發(fā),以及通過應(yīng)用的負(fù)載均衡。

  • Pod

運行于Node節(jié)點上,若干相關(guān)容器的組合。Pod內(nèi)包含的容器運行在同一宿主機上,使用相同的網(wǎng)絡(luò)命名空間、IP地址,同一個Pod中,端口不能重復(fù),否則報錯,能夠通過localhost進行通信。Pod是Kurbernetes進行創(chuàng)建、調(diào)度和管理的最小單位,它提供了比容器更高層次的抽象,使得部署和管理更加靈活。一個Pod可以包含一個容器或者多個相關(guān)容器。
??Pod其實有兩種類型:普通Pod和靜態(tài)Pod,后者比較特殊,它并不存在Kubernetes的etcd存儲中,而是存放在某個具體的Node上的一個具體文件中,并且只在此Node上啟動。普通Pod一旦被創(chuàng)建,就會被放入etcd存儲中,隨后會被Kubernetes Master調(diào)度到摸個具體的Node上進行綁定,隨后該Pod被對應(yīng)的Node上的kubelet進程實例化成一組相關(guān)的Docker容器并啟動起來。在默認(rèn)情況下,當(dāng)Pod里的某個容器停止時,Kubernetes會自動檢測到這個問起并且重啟這個Pod(重啟Pod里的所有容器),如果Pod所在的Node宕機,則會將這個Node上的所有Pod重新調(diào)度到其他節(jié)點上。

1.3 kubectl

?? 集群管理命令行工具集,通過客戶端的kubectl命令集操作,API Server響應(yīng)對應(yīng)的命令結(jié)果,從而達到對kubernetes集群的管理。

2 kubeadm

??Kubeadm是一個工具,它提供了kubeadm init以及kubeadm join這兩個命令作為快速創(chuàng)建kubernetes 集群的最佳實踐。

??kubeadm通過執(zhí)行必要的操作來啟動和運行一個最小可用的集群。kubeadm只關(guān)心啟動集群,而不關(guān)心其他工作,如部署前的節(jié)點準(zhǔn)備工作、安裝各種Kubernetes Dashboard、監(jiān)控解決方案以及特定云提供商的插件,這些都不屬于kubeadm關(guān)注范圍。

2.1 kubeadm功能

  • kubeadm init 啟動/初始化一個 Kubernetes 主節(jié)點;
  • kubeadm join 啟動一個 Kubernetes 工作節(jié)點并且將其加入到集群;
  • kubeadm upgrade 更新一個 Kubernetes 集群到新版本;
  • kubeadm config 如果使用 v1.7.x 或者更低版本的 kubeadm 初始化集群,您需要對集群做一些配置以便使用 kubeadm upgrade 命令;
  • kubeadm token 管理 kubeadm join 使用的令牌;
  • kubeadm reset 還原 kubeadm init 或者 kubeadm join 對主機所做的任何更改;
  • kubeadm version 打印 kubeadm 版本;
  • kubeadm alpha 預(yù)覽一組可用的新功能以便從社區(qū)搜集反饋。

Kubernetes集群部署

準(zhǔn)備工作(所有節(jié)點都要做同樣的操作)

服務(wù)器配置

集群(一主兩從) ip地址 主機名 配置
172.16.11.221 k8s-master 2C/2G/50G
172.16.11.222 k8s-node1 2C/2G/50G
172.16.11.223 k8s-node2 2C/2G/50G

關(guān)閉防火墻

systemctl stop firewalld && systemctl disable firewalld

如果在線上服務(wù)器之類的不能關(guān)閉防火墻,那就需要開啟幾個端口;(這里說的是k8所用到的端口)

  • master節(jié)點:
規(guī)則 端口范圍 作用 使用者
TCP 6443* Kubernetes API server All
TCP 2379-2380 etcd server client API kube-apiserver, etcd
TCP 10250 Kubelet API Self, Control plane
TCP 10251 kube-scheduler Self
TCP 10252 kube-controller-manager Self
  • node節(jié)點:
規(guī)則 端口范圍 作用 使用者
TCP 10252 Kubelet API Self, Control plane
TCP 30000-32767 NodePort Services** All

關(guān)閉selinux

臨時關(guān)閉selinux(沙河)如需永久關(guān)閉selinux需要修改為sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

#臨時關(guān)閉selinux
setenforce 0

#永久關(guān)閉selinux
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

關(guān)閉交換分區(qū)

#臨時關(guān)閉所有的交換分區(qū)
swapoff -a

#永久關(guān)閉所有的交換分區(qū)
sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab

修改三臺集群的主機名:(每個主機限一條命令)

[root@k8s-master1 ~]# hostnamectl set-hostname k8s-master
[root@k8s-node1 ~]# hostnamectl set-hostname k8s-node1
[root@k8s-node2 ~]# hostnamectl set-hostname k8s-node2

所有節(jié)點都添加集群ip與主機名到hosts中:

cat >> /etc/hosts << EOF 
172.16.11.221 k8s-master
172.16.11.222 k8s-node1
172.16.11.223 k8s-node2
EOF

注意:ip一定要改成自己的ip,不要直接復(fù)制粘貼

三臺機器進行時間同步

#安裝同步時間命令
yum install ntpdate -y

#同步時間
ntpdate cn.pool.ntp.org

#設(shè)置定時任務(wù)每五分鐘同步一次時間
echo "*/5 * * * * root /usr/sbin/ntpdate cn.pool.ntp.org &>/dev/null" >> /etc/crontab

特殊說明:

如果是克隆虛擬機建議執(zhí)行rm -rf /etc/udev/* 保證網(wǎng)卡UUID不同

三臺都安裝需要的一些命令:

  • 添加centos源并將下載地址更換為阿里云地址
#添加centos源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

#將下載地址更換為阿里云地址
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
  • 添加epel擴展源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  • 清除緩存
yum clean all
  • 重新加載源緩存
yum makecache
  • 升級yum并安裝一些會用到的命令
yum -y update && yum -y install lrzsz wget conntrack ipvsadm ipset jq psmisc sysstat curl iptables net-tools libseccomp gcc gcc-c++ yum-utils device-mapper-persistent-data lvm2 bash-completion

安裝需要一些時間,就等待安裝即可;

部署 docker(所有節(jié)點都需要部署)

#安裝docker所需的依賴包
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2	

#添加阿里云的docker鏡像地址
[root@docker ~]# sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
&&#或者(二選一即可)
[root@docker ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

#更新緩存,只處理新添加的yum源緩存
[root@docker ~]# yum makecache fast

#部署docker,默認(rèn)安裝最新版本
[root@docker ~]# yum install -y docker-ce-20.10.14 docker-ce-cli-20.10.14 containerd.io

#查看安裝docker版本
[root@docker ~]# docker --version(或者使用docker version)
Docker version 20.10.14, build a224086

#加載docker配置
[root@docker ~]# systemctl daemon-reload
#啟動docker服務(wù)
[root@docker ~]# systemctl start docker
#設(shè)置docker服務(wù)開機自啟
[root@docker ~]# systemctl enable docker

#查看docker可以安裝的版本,也可以自己安裝指定版本,yum -y install docker-ce-19.03.12.el7
[root@docker ~]# yum list docker-ce --showduplicates | sort -r

給docker添加鏡像加速器及cgroup并重啟docker服務(wù)

[root@docker ~]# mkdir -p /etc/docker
[root@docker ~]# tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mrlmpasq.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
#由于新版kubelet建議使用systemd,所以可以把docker的CgroupDriver改成systemd

#重新加載docker配置
[root@docker ~]# systemctl daemon-reload
#重新啟動docker服務(wù)
[root@docker ~]# systemctl restart docker

docker部署完成

部署 kubernetes(所有節(jié)點都要部署)

配置相關(guān)的內(nèi)核參數(shù)

將橋接的IPv4 流量傳遞到iptables 的鏈

[root@docker ~]# cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

#讓其生效
sysctl --system

添加 k8s yum源

[root@docker ~]# 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

#重新加載緩存
yum makecache fast

安裝 kubeadm kubelet kubectl

注:安裝這幾個版本不要用最新的,容易出問題

yum install -y kubeadm-1.20.0-0 kubelet-1.20.0-0 kubectl-1.20.0-0

#查看kubeadm版本
kubeadm version
  • 啟動kubelet并設(shè)置開機自啟
systemctl enable kubelet && systemctl start kubelet

kubernetes強化tab(安裝之后會tab可以補全命令及參數(shù))

  • 配置環(huán)境
echo 'source  <(kubectl  completion  bash)' >> ~/.bashrc

1、退出連接,重新連接;
2、或者bash更新環(huán)境就可以使用了。

查看kubeadm使用的鏡像

kubeadm config images list

可以發(fā)現(xiàn)這里都是國外的鏡像

k8s.gcr.io/kube-apiserver:v1.20.15
k8s.gcr.io/kube-controller-manager:v1.20.15
k8s.gcr.io/kube-scheduler:v1.20.15
k8s.gcr.io/kube-proxy:v1.20.15
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns:1.7.0

  • 解決國外鏡像不能訪問的問題,執(zhí)行kubeadm.sh腳本,用于拉取鏡像/打tag/刪除原有鏡像;
wget -O kubeadm.sh https://files.rundreams.net/sh/kubeadm.sh && sh kubeadm.sh

等待拉取完成。

如果感覺拉取比較費勁,可以下載kubeadm所需的鏡像和腳本:kubeadm所需鏡像包及腳本v1.20.15版本

拉取完成查看鏡像;

docker images

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

master節(jié)點

初始化master節(jié)點

如果執(zhí)行kubeadm init初始化k8s集群失敗了,在下一次執(zhí)行kubeadm init初始化語句之前,可以先執(zhí)行kubeadm reset命令。這個命令的作用是重置節(jié)點,大家可以把這個命令理解為:上一次kubeadm init初始化集群操作失敗了,該命令清理了之前的失敗環(huán)境。

此命令只在master節(jié)點執(zhí)行,172.16.11.221替換為自己的master節(jié)點IP,172.17.10.1/18替換為自己的pod網(wǎng)段。

kubeadm init --kubernetes-version=1.20.15 --apiserver-advertise-address=172.16.11.221 --pod-network-cidr=172.17.10.1/18

初始化成功圖為下:

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

如遇初始化報錯可根據(jù)systemctl status kubelet 或者 journalctl -xeu kubelet 查看報錯信息來解。決

  • 根據(jù)成功提示先執(zhí)行下面內(nèi)容
    這些是成功圖中提示的那些,要給他創(chuàng)建一下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

#查看nodes節(jié)點
kubectl get nodes

#這個時候master是處于NotReady狀態(tài)的。

node節(jié)點的加入

  • 完成之后將剛剛初始化master節(jié)點成功后的kubeadm join信息復(fù)制到其他node節(jié)點進行加入。
node1:
	kubeadm join 172.16.11.221:6443 --token ckgdsy.xa5x21lsjqak2zmr \
    --discovery-token-ca-cert-hash sha256:3bc8dd07b7e88a5f7b0efa81b4ae4918abb440f93f4940c72f9b4a842d6c872b 
node2:
	kubeadm join 172.16.11.221:6443 --token ckgdsy.xa5x21lsjqak2zmr \
    --discovery-token-ca-cert-hash sha256:3bc8dd07b7e88a5f7b0efa81b4ae4918abb440f93f4940c72f9b4a842d6c872b 

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

node節(jié)點顯示這樣就是加載成功;

加載成功之后返回master節(jié)點查看集群

[root@k8s-master ~]# kubectl get nodes

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

現(xiàn)在的集群狀態(tài)都是NotReady表示不可達;這是因為還沒有安裝網(wǎng)絡(luò)插件,下面我們來安裝一下網(wǎng)絡(luò)插件(caclico)

給master節(jié)點安裝Pod網(wǎng)絡(luò)插件(calico)

選擇網(wǎng)絡(luò)插件:https://kubernetes.io/docs/concepts/cluster-administration/addons/
快速開始配置:https://projectcalico.docs.tigera.io/archive/v3.20/getting-started/clis/calicoctl/install
calico網(wǎng)絡(luò)插件:https://docs.projectcalico.org/v3.9/getting-started/kubernetes/

  • 在master節(jié)點安裝calico
kubectl apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

  • 確認(rèn)一下calico是否安裝成功
kubectl get pods --all-namespaces -w
kubectl get pods -n kube-system -w

查看節(jié)點連接狀態(tài)

安裝完成之后,再次返回master節(jié)點查看集群,在主節(jié)點執(zhí)行命令看集群是否成功

kubectl get nodes
#或者使用加-o wide查看詳細(xì)
kubectl get nodes -o wide

STATUS 狀態(tài)為Ready則連接成功。

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

測試

  • 寫一個nginx的yaml文件
cat > pod_nginx_rs.yaml <<EOF
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx
  labels:
    tier: frontend
spec:
  replicas: 3
  selector:
    matchLabels:
      tier: frontend
  template:
    metadata:
      name: nginx
      labels:
        tier: frontend
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
EOF
  • 根據(jù)pod_nginx_rs.yml文件創(chuàng)建pod
kubectl apply -f pod_nginx_rs.yaml
  • 查看pod
#查看所有的pod
kubectl get pods
#查看所有的pod詳細(xì)信息
kubectl get pods -o wide
#查看所有的pod超級詳細(xì)信息
kubectl describe pod nginx

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

  • 通過rs將pod擴容為5個nginx服務(wù)
#將nginx服務(wù)由3個擴容為5個
kubectl scale rs nginx --replicas=5
#查看所有的pod
kubectl get pods -o wide
  • 光有ReplicaSet是不行的,ReplicaSet不會提供服務(wù)的,需要一個Service。將它應(yīng)用到集群里面去。
cat > pod_nginx_rs_svc.yaml <<EOF
apiVersion: v1
kind: Service              # 類型是service
metadata:                  
  name: nginx              # 這個service的全局唯一名稱
spec:
  type: NodePort
  ports:
    - port: 80             # service提供服務(wù)的端口號
      nodePort: 30000      # 想要對外的端口
  selector:
    tier: frontend         # 把擁有{tier:labels}或者{app:labels}這個標(biāo)簽的pod應(yīng)用到這個服務(wù)里面
EOF

如果不加nodePort也就是不指定nodeport,默認(rèn)會隨機輸出端口,可以通過kubectl get svc查看;

如果需要修改端口范圍,如果是按照我的方式部署的,可在:vim /etc/kubernetes/manifests/kube-apiserver.yaml 的第17行進行修改,默認(rèn)范圍是30000-32767。

  • 根據(jù) pod_nginx_rs_svc.yml 文件創(chuàng)建services,需對外訪問
kubectl apply -f pod_nginx_rs_svc.yaml
  • 查看services
kubectl get svc
kubectl get services

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

kubectl get svc 中的 type 。

  • Cluster IP 為服務(wù)器內(nèi)部使用
  • Node Port 為服務(wù)器內(nèi)部外部都可以使用,可以指定端口也可以隨機端口。
  • 啟動services之后,查看端口

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

端口為30000,頁面訪問,節(jié)點的ip+30000;

節(jié)點的ip可以為主節(jié)點的ip,也可以為從節(jié)點的ip。

【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介

  • 刪除serviecs和pod
#刪除serviecs
kubectl delete -f pod_nginx_rs_svc.yaml

#刪除pod
kubectl delete -f pod_nginx_rs.yaml

完結(jié)?

內(nèi)容主要參考與:【云原生-K8s】kubeadm搭建k8s集群【不成功手把手教學(xué)】

感謝大家的觀看?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-465341.html

到了這里,關(guān)于【云原生-K8s-1】kubeadm搭建k8s集群(一主兩從)完整教程及kubernetes簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    本篇主要針對上篇文章的單 master 節(jié)點的 K8s 集群上搭建多 master 節(jié)點集群 和 LB 負(fù)載均衡服務(wù)器。 Kubernetes(K8S)集群搭建基礎(chǔ)入門教程 虛擬機 IP 地址: IP 操作系統(tǒng) 主機名稱 192.168.2.121 centos7.9 k8s-master01 192.168.2.124 centos7.9 k8s-master02 192.168.2.125 centos7.9 k8s-node01 192.168.2.126 centos

    2023年04月26日
    瀏覽(34)
  • 成功使用kubeadm搭建k8s集群的過程

    目錄 1.環(huán)境初始化: 2.安裝docker 3.安裝k8s組件: 4.準(zhǔn)備集群鏡像: 5.集群初始化: 6.安裝網(wǎng)絡(luò)插件: 7.服務(wù)部署: 1.環(huán)境初始化: 主機規(guī)劃: 節(jié)點 IP地址 操作系統(tǒng) 配置 master 192.168.178.102 centos7.9 2G2核 node1 192.168.178.152 centos7.9 2G2核 node2 192.168.178.202 centos7.9 2G2核 本次環(huán)境搭建需

    2023年04月19日
    瀏覽(20)
  • Kubeadm方式搭建K8s集群 1.27.0版本

    Kubeadm方式搭建K8s集群 1.27.0版本

    目錄 一、集群規(guī)劃 二、系統(tǒng)初始化準(zhǔn)備(所有節(jié)點同步操作) 三、安裝并配置cri-docker插件 四、安裝kubeadm(所有節(jié)點同步操作) 五、初始化集群 六、Node節(jié)點添加到集群 七、安裝網(wǎng)絡(luò)組件Calico 八、測試codedns解析可用性 環(huán)境規(guī)劃: pod網(wǎng)段:10.244.0.0/16 service網(wǎng)段:10.10.0.0/16 注

    2024年02月13日
    瀏覽(29)
  • Kubeadm方式搭建K8s集群【1.27.0版本】

    Kubeadm方式搭建K8s集群【1.27.0版本】

    官方文檔: 二進制下載地址 環(huán)境規(guī)劃: pod網(wǎng)段:10.244.0.0/16 service網(wǎng)段:10.10.0.0/16 注意: pod和service網(wǎng)段不可沖突,如果沖突會導(dǎo)致K8S集群安裝失敗。 主機名 IP地址 操作系統(tǒng) master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS7.8 1、關(guān)閉防火墻 2、配置域名解

    2024年02月04日
    瀏覽(31)
  • kubeadm方式搭建的k8s集群升級——2023.05

    kubeadm方式搭建的k8s集群升級——2023.05

    搭建k8s集群的方式有很多種,比如二進制,kubeadm,RKE(Rancher)等,k8s集群升級方式也各有千秋,本文主要介紹使用kubeadm方式搭建的k8s集群升級方法。 需要注意的是,升級集群版本建議逐步升級,比如 v1.20.4–v1.21.4–v1.22.4–v1.23.4–v1.24.4,不能跨度過大,否則會報錯。 節(jié)點

    2024年02月12日
    瀏覽(27)
  • Kubeadm方式搭建K8s高可用集群【1.23.0版本】

    Kubeadm方式搭建K8s高可用集群【1.23.0版本】

    官方文檔: 二進制下載地址 環(huán)境規(guī)劃: pod網(wǎng)段:10.244.0.0/16 service網(wǎng)段:10.10.0.0/16 注意: pod和service網(wǎng)段不可沖突,如果沖突會導(dǎo)致K8S集群安裝失敗。 主機名 IP地址 操作系統(tǒng) 備注 master-1 16.32.15.200 CentOS7.8 安裝keepalived、nginx實現(xiàn)高可用 master-2 16.32.15.201 CentOS7.8 安裝keepalived、

    2023年04月22日
    瀏覽(27)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.27.0版本

    【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.27.0版本

    官方文檔: 二進制下載地址 環(huán)境規(guī)劃: pod網(wǎng)段:10.244.0.0/16 service網(wǎng)段:10.10.0.0/16 注意: pod和service網(wǎng)段不可沖突,如果沖突會導(dǎo)致K8S集群安裝失敗。 主機名 IP地址 操作系統(tǒng) master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS7.8 1、關(guān)閉防火墻 2、配置域名解

    2024年02月08日
    瀏覽(35)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.26.0版本

    【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.26.0版本

    官方文檔: 二進制下載地址 環(huán)境規(guī)劃: pod網(wǎng)段:10.244.0.0/16 service網(wǎng)段:10.10.0.0/16 注意: pod和service網(wǎng)段不可沖突,如果沖突會導(dǎo)致K8S集群安裝失敗。 容器運行時本次使用containerd。 主機名 IP地址 操作系統(tǒng) master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS

    2024年02月10日
    瀏覽(50)
  • 使用kubeadm搭建生產(chǎn)環(huán)境的多master節(jié)點k8s高可用集群

    使用kubeadm搭建生產(chǎn)環(huán)境的多master節(jié)點k8s高可用集群

    環(huán)境centos 7.9 目錄 ?1.對安裝 k8s 的節(jié)點進行初始化配置 2 通過 keepalived+nginx 實現(xiàn) k8s apiserver 節(jié)點高可用 3、kubeadm 初始化 k8s 集群 4.擴容 k8s 控制節(jié)點,把 xuegod62 加入到 k8s 集群 5、擴容 k8s 控制節(jié)點,把 xuegod64 加入到 k8s 集群 6、擴容 k8s 集群-添加第一個工作節(jié)點 ?7、安裝 ku

    2024年02月16日
    瀏覽(25)
  • kubeadm搭建單master多node的k8s集群--小白文,圖文教程

    kubeadm搭建單master多node的k8s集群--小白文,圖文教程

    K8S基礎(chǔ)知識與集群搭建 kubeadm搭建單master多node的k8s集群—主要參考這個博客,但是有坑,故貼出我自己的過程,坑會少很多 注意: 集群配置是:一臺master:zabbixagent-k8smaster,兩臺node:k8snode1和k8snode2 當(dāng)沒有明說master機器做什么或者node機器做什么時,所有操作步驟默認(rèn)是三臺

    2024年02月19日
    瀏覽(29)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包