Kubernetes核心实战一

1、资源创建方式

● 命令行
● YAML 

2、Namespace

名称空间用来隔离资源
使用命令行创建、删除

kubectl create ns hello
kubectl delete ns hello

使用配置文件创建、删除

delete ns -f 配置文件
apiVersion: v1
kind: Namespace
metadata:
  name: hello

3、Pod

**运行中的一组容器,Pod是kubernetes中应用的最小单位.**是说docker容器外面还有以容器就是Pod在这里插入图片描述
使用命令行来创建

kubectl run mynginx --image=nginx

# 查看default名称空间的Pod
kubectl get pod 
# 描述
kubectl describe pod 你自己的Pod名字
# 删除
kubectl delete pod Pod名字
# 查看Pod的运行日志
kubectl logs Pod名字

# 每个Pod - k8s都会分配一个ip
kubectl get pod -owide
# 使用Pod的ip+pod里面运行容器的端口
curl 192.168.169.136

# 集群中的任意一个机器以及任意的应用都能通过Pod分配的ip来访问这个Pod
#进入容器
kubectl exec -it 容器名 -- /bin/bash

使用配置文件来创建

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: mynginx
  name: mynginx
#  namespace: default
spec:
  containers:
  - image: nginx
    name: mynginx
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: myapp
  name: myapp
spec:
  containers:
  - image: nginx
    name: nginx
  - image: tomcat:8.5.68
    name: tomcat

在这里插入图片描述

使用图形界面来创建

创建容器点击右上角的加号+
要选择好命名空间的位置否则不能创建
在这里插入图片描述
在这里插入图片描述
我们可以再图形化界面中对创建的容器进行操作
在这里插入图片描述
使用命令进入容器中

kubectl exec -it mynginx -- /bin/bash

修改里面的内容
在这里插入图片描述
我们还可以直接再图形化界面容器点击执行可以直接进入容器内部进行修改
在这里插入图片描述
创建的容器我们查找到他的端口,它是可以再不同节点进行访问
在这里插入图片描述
使用配置文件创建一个容器中有两个镜像

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: myapp
  name: myapp
spec:
  containers:
  - image: nginx
    name: nginx
  - image: tomcat:8.5.68
    name: tomcat

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为容器中有多个不同的镜像,所以我们再访问的时候要指定想对应的端口。
在这里插入图片描述
我们还可以再可视化界面进入,因为他们实在一个pod内所以他们两个访问直接使用127.0.0.1:端口号进行访问。
在这里插入图片描述
在这里插入图片描述
特别要记住我们创建的Pod容器内有多个镜像,但是这些镜像的端口一定要不相同,否则不能创建成功
删除多个镜像并指定命名空间

kubectl delete pod myapp mynginx -n default

4.Deployment

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

# 清除所有Pod,比较下面两个命令有何不同效果?
kubectl run mynginx --image=nginx

kubectl create deployment mytomcat --image=tomcat:8.5.68
# 自愈能力

开启监听 每个一秒执行一次命令

watch -n 1 kubectl get pod

删除容器 我们会发现当我们使用普通命令删除容器的时候,他会自动在给我们创建一个新的,这就是他的强大之自愈能力

kubectl delete pod mytomcat-6f5f895f4f-qlg6q

在这里插入图片描述
当我们真的像删除时,需要现查看deplop,在指定删除

 kubectl get deploy
kubectl delete deploy mytomcat

在这里插入图片描述

多副本

replicas创建三个nginx他会自动给我们放在不同的节点上

kubectl create deployment my-dep --image=nginx --replicas=3

在这里插入图片描述
我们可以使用命令删除,也可以在图形化界面左侧De找到对应的进行删除

kubectl delete -n default deployment my-dep

在这里插入图片描述
使用图形化界面从表单中创建
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

可以使用配置文件进行创建

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: my-dep
  name: my-dep
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-dep
  template:
    metadata:
      labels:
        app: my-dep
    spec:
      containers:
      - image: nginx
        name: nginx
       

扩缩容

–replicas=5指定容器中的数量

kubectl scale --replicas=5 deployment/my-dep

在这里插入图片描述
通过修改配置文件来进行扩容

kubectl edit deployment my-dep

#修改 replicas

在这里插入图片描述
通过可视化界面来进行扩容
在这里插入图片描述

自愈&故障转移

● 停机
● 删除Pod
● 容器崩溃
停止一个容器他会自动给我们再启动一次

查看deploy中的信息

kubectl get pod -owide

在这里插入图片描述
通过上面的搜素我们看到容器的名,选择的node1中的,来到node1节点使用docker进行搜索

docker ps|grep my-dep-5b7868d854-pk6kp 

找到容器id进行停止
在这里插入图片描述
模拟服务宕机
停止node1服务器
他会有一个默认的时间来进行判断5分钟,五分钟后他会认为这个服务宕机
注意节点的变化,他会给我们重新再node2上面创建两个
这是k8s自带的我们监听

kubectl get pod -w

在这里插入图片描述

滚动更新

这样旧可以达到不停机的迭代更新
就是回滚到之前的版本中
使用yaml格式打开

 kubectl get deploy my-dep -oyaml

找到containers容器版本
在这里插入图片描述
–record是记住这次回滚的命令

kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record
kubectl rollout status deployment/my-dep #查看回滚状态

再回滚的过程中,它是先创建一个新的容器等他运行好才把旧的容器删除掉。他不先直接删除
在这里插入图片描述

版本回退

#历史记录
kubectl rollout history deployment/my-dep


#查看某个历史详情
kubectl rollout history deployment/my-dep --revision=2

#回滚(回到上次)
kubectl rollout undo deployment/my-dep

#回滚(回到指定版本)
kubectl rollout undo deployment/my-dep --to-revision=2

版本回退同样是先创建容器再删除旧的容器
在这里插入图片描述
在这里插入图片描述

更多:
除了Deployment,k8s还有 StatefulSet 、DaemonSet 、Job 等 类型资源。我们都称为 工作负载。
有状态应用使用 StatefulSet 部署,无状态应用使用 Deployment 部署
https://kubernetes.io/zh/docs/concepts/workloads/controllers/在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值