Kubernetes(k8s)学习笔记(四)--入门基本操作

本文通过kubernetes部署tomcat集群,来学习和掌握kubernetes的一些入门基本操作

前提条件

1.各个节点处于Ready状态;

2.配置好docker镜像库(否则会出现ImagePullBackOff等一些问题);

3.网络配置正常(否则即使应用发布没问题,浏览器访问不了)。

实现的过程

一.编写一个tomcat发布的yaml文件tomcat-9.0-deployment.yaml,内容类似下面这样的:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: tomcat9
  name: tomcat9
spec:
  replicas: 3 #指定集群的节点个数
  selector:
    matchLabels:
      app: tomcat9
  template:
    metadata:
      labels:
        app: tomcat9
    spec:
      containers:
      - image: tomcat:9.0.85-jre8
        name: tomcat
        # 启动时自动复制 webapps.dist 内容到 webapps
        lifecycle:
          postStart:
            exec:
              command: ["/bin/sh", "-c", "cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/"]
        ports:
        - containerPort: 8080
--- # 使用三个短横线分隔不同的配置,一个yaml文件可以配置多个
apiVersion: v1
kind: Service
metadata:
  labels:
    app: tomcat9
  name: tomcat9
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
    nodePort: 30080  # 指定易记端口,对外访问端口
  selector:
    app: tomcat9
  type: NodePort
  externalTrafficPolicy: Cluster

二.使用yaml文件部署tomcat集群

kubectl apply -f ./tomcat-9.0-deployment.yaml

 执行后输出:deployment和service created的信息

三.验证应用的发布

使用下面的命令,查看所有资源情况

kubectl get all 

 

从上图可以看到,3个tomcat节点都处于运行状态,对外访问端口是30080。

然后使用浏览器访问,出现tomcat的欢迎页面,注意这里的IP不是CLUSTER-IP,而是前面文章配置时获得的ip。可使用这个命令查看启动是否正常,是否可访问:

[root@k8s-node1 k8s]# kubectl exec -it tomcat9-f4d6f4687-7vwch -- curl -I localhost:8080
HTTP/1.1 200 
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Sat, 03 May 2025 08:06:38 GMT

返回200则表示正常。

如果不知道yaml文件怎么写,可以尝试在命令后面添加--dry-run,这样就会输出示例yaml文件

例如:

kubectl create deployment tomcat9 --image=tomcat:9 --dry-run -o yaml > tomcat9-deployment.yaml

就会在当前目录下输出一个tomcat9-deployment.yaml文件从而获得app的配置信息,但并不会创建一个发布,同样kubectl expose deployment tomcat9 --port=80 --target-port=8080 --type=NodePort --dry-run -o yaml则在当前目录下输出service配置的内容,然后把service配置的内容添加到前面的tomcat9-deployment.yaml(使用---分隔开来),然后以最终的tomcat9-deployment.yaml来发布应用。

拓展:常用命令 

1.获取所有的命名空间

kubectl get ns

2.获取所有命名空间的节点信息,用户创建的发布均位于default空间下:

kubectl get pods --all-namespaces

3.获得默认命名空间的节点基本信息

kubectl get pods

3.获得默认命名空间的节点详细信息

kubectl get pods  -o wide

4.获取所有资源信息

kubectl get all

5.获取所有的节点信息

kubectl get nodes

6.获取所有的服务信息

kubectl get svc

7.使用指定文件创建发布

kubectl apply -f xxx.yaml

8.删除发布的应用

kubectl delete deployment.apps/应用名

9.向外暴露端口

kubectl expose deployment 应用名(比如tomcat9) --port=80 --target-port=8080 --type=NodePort

10.将应用扩容到指定数目的数量

kubectl scale --replicas=3 deployment 应用名

11.进入应用内部

kubectl exec -it pod/应用名称 -- /bin/bash

12.获得服务的详细信息

kubectl describe service tomcat9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值