kubernetes核心实战

###1.nameSpace:

名称空间,用来对集群资源进行隔离划分。默认只隔离资源,不隔离网络。

通过kubectl get ns 可以查看所有的名称空间

通过kubectl get pods -A 可以查看部署的所有应用

通过kubectl get pod -n 名称空间名 可以查看该名称空间部署的应用

通过kubectl get pod 可以查看默认名称空间的应用

通过kubectl create ns —可以创建名称空间

通过kubectl delete ns— 可以删除名称空间

此外通过配置文件的方式可以创建名称空间

vi —.yaml 创建

kubectl apply -f --.yaml 应用

kubectl delete -f —.yaml 删除

2.Pod

运行中的一组容器,Pod是kubernetes中应用的最小单位

运行Pod: kubectll run name --image=docker(nginx…)

删除Pod: kubectl delete pod podName -n 名称空间

描述Pod:kubectl describe pod podName

通过配置文件创建Pod

vi pod.yaml 创建

kubectl apply -f pod.yaml 应用

查看Pod运行日志

kubectl logs podName

每个Pod K8s都会分配一个IP

kubectl get pod -owide

curl podIP 可以访问Pod的页面,仅在集群内访问

创建一个Pod含有 多个镜像

kubectl构建pod非得从镜像拉取吗 kubectl get pod namespace_配置文件

同一个Pod内部访问只需:curl 127.0.0.1:访问的镜像的端口号

Deployment

使得Pod拥有多副本,自愈,扩缩容等能力

kubectl create deployment Dname --image=镜像Name

拥有自愈能力在删除由deployment创建的Pod时无法删除,防止因机器宕机而造成的破坏。

若需要删除即:kubectl delete deploy dploymentName

创建多副本Pod

kubectl create deployment Dname --image=Name --replicas=PodNum

扩缩容

kubectl scale deploy/Dname --replicas=num

滚动更新

kubectl set image deploy/Dname 镜像Name=… record

可以实现版本无间更新,创建一个新的镜像才会删除一个老版本的

版本回退

历史记录

kubectl rollout history deployment/Dname

查看某个历史详情

kubectl rollout history deployment/Dnmae --reversion=num

回滚(回到上次)

kubectl rollout undo deployment/Dname

回滚(回到指定版本)

kubectl rollout undo deployment/Dnmae --to-reversion=num

kubectl构建pod非得从镜像拉取吗 kubectl get pod namespace_Pod_02

Service

将一组Pods公开为网络服务的抽象方法

kubectl构建pod非得从镜像拉取吗 kubectl get pod namespace_名称空间_03

kubectl expose deploy Dname --port=8000 --target-port=80

其中port=8000表示设置Service的端口为8000,以后前端页面即访问这个Service的端口,target-port=80表示几个Pod的端口

访问时并不是只会固定的访问一个Pod而是会随机访问Pod,由此实现负载均衡。

kubectl get svc 显示Service

集群内使用service的ip:port就可以负载均衡的访问

通过配置文件实现

kubectl构建pod非得从镜像拉取吗 kubectl get pod namespace_Pod_04

Nodeport暴露给集群外部,通过公网IP加端口即可访问

kubectl构建pod非得从镜像拉取吗 kubectl get pod namespace_配置文件_05

Ingress

Service的统一网关入口

kubectl构建pod非得从镜像拉取吗 kubectl get pod namespace_配置文件_06

存储抽象-NFS

同步数据,防止宕机导致数据丢失。

下载安装NFS

yum install -y nfs-utils  所有节点

2主节点

encho "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports
mkdir -p /nfs/data
systemctl enable rpcbind --now
systemctl enable nfs-server --now
#配置生效
exports -r
rw,sync,no_root_squash)" > /etc/exports
 mkdir -p /nfs/data
 systemctl enable rpcbind --now
 systemctl enable nfs-server --now
 #配置生效
 exports -r