kubernetes实战
Posted 旧时星空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kubernetes实战相关的知识,希望对你有一定的参考价值。
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含有 多个镜像
同一个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
Service
将一组Pods公开为网络服务的抽象方法
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就可以负载均衡的访问
通过配置文件实现
Nodeport暴露给集群外部,通过公网IP加端口即可访问
Ingress
Service的统一网关入口
存储抽象-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
以上是关于kubernetes实战的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes——Kubernetes资源管理+Kubernetes实战入门
Kubernetes云原生实战01 Kubernetes高可用部署架构
Kubernetes云原生实战01 Kubernetes高可用部署架构
Kubernetes云原生实战01 Kubernetes高可用部署架构