首页 > 其他分享 >K8S集群操作

K8S集群操作

时间:2022-12-01 17:36:52浏览次数:41  
标签:kubectl tomcat get -- tomcat6 集群 操作 pod K8S


部署一个容器

创建tomcat容器
kubectl create deployment tomcat6 --image=tomcat:6.0.53-jre8

[root@master k8s]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9m7s
tomcat6 NodePort 10.96.74.175 <none> 80:32059/TCP 18s

创建成功
deployment.apps/tomcat6 created

开放服务

kubectl expose deployment tomcat6 --port=80 --target-port=8080 --type=NodePort
查看
kubectl get svc
查看更多
kubectl get svc -o wide

查看部署状态

kubectl get all
NAME READY STATUS RESTARTS AGE 部署的pod
pod/tomcat6-5f7ccf4cb9-s8p2m 0/1 ContainerCreating 0 28s

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE 服务
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 15h

NAME READY UP-TO-DATE AVAILABLE AGE 本次部署
deployment.apps/tomcat6 0/1 1 0 28s

NAME DESIRED CURRENT READY AGE 应用复制
replicaset.apps/tomcat6-5f7ccf4cb9 1 1 0 28s

查看pod部署在哪个节点

[root@kmaster ~]# kubectl get all -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/tomcat6-5f7ccf4cb9-s8p2m 0/1 ContainerCreating 0 4m52s <none> n1 <none> <none>

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 15h <none>

NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/tomcat6 0/1 1 0 4m52s tomcat tomcat:6.0.53-jre8 app=tomcat6

NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/tomcat6-5f7ccf4cb9 1 1 0 4m52s tomcat tomcat:6.0.53-jre8 app=tomcat6,pod-template-hash=5f7ccf4cb9

删除pod

kubectl get all
kubectl delete deployment.apps/tomcat6
kubectl delete service/kubernetes
创建的deployment会管理replicas、replicas控制这pod的数量,有pod故障自动会拉起新的pod


kubectl delete pod/tomcat6-5f7ccf4cb9-4665b

查看名称空间

kubectl get namespaces

强制删除掉线node中的pod

kubectl delete pod [pod name] --force --grace-period=0 -n [namespace]

这里pod没有namespace的话那就用默认的default名称空间
注意:必须加-n参数指明namespace,否则可能报错pod not found。

查看pod所在的命名空间

kubectl get pods --all-namespaces

查看svc 所在的命名空间

kubectl get svc --all-namespaces

查看pod启动状态

kubectl get pod
NAME READY STATUS RESTARTS AGE
redis-master-c9gzd 0/1 ContainerCreating 0 17m
kubectl describe pod redis-master-c9gzd

kubectl describe pod nginx-ingress-controller-xrk82 -n ingress-nginx

扩容pod

kubectl scale --replicas=3 deployment tomcat6

缩容pod

kubectl scale --replicas=0 deployment tomcat6

输出yaml不执行

[root@master /]# kubectl create deployment tomcat7 --image=tomcat:6.0.53-jre8 --dry-run -o yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: tomcat7
name: tomcat7
spec:
replicas: 1
selector:
matchLabels:
app: tomcat7
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: tomcat7
spec:
containers:
- image: tomcat:6.0.53-jre8
name: tomcat
resources: {}
status: {}

容器pod的yaml指定输出

[root@master /]# kubectl create deployment tomcat7 --image=tomcat:6.0.53-jre8 --dry-run -o yaml > tomcat6.yaml

删除一些无关紧要的配置

apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: tomcat6
name: tomcat6
spec:
replicas: 3
selector:
matchLabels:
app: tomcat6
template:
metadata:
labels:
app: tomcat6
spec:
containers:
- image: tomcat:6.0.53-jre8
name: tomcat

应用yaml

kubectl apply -f tomcat6.yaml

查看以启动的pod的yaml

kubectl get pod tomcat6-5f7ccf4cb9-4665b -o yaml
kubectl get pod httpd-gv4bl -o yaml -n openebs

一个pod运行多个容器

apiVersion: v1
kind: Pod
metadata:
labels:
app: tomcat6-new
name: tomcat6-new
namespace: default
spec:
containers:
- image: tomcat:6.0.53-jre8
imagePullPolicy: IfNotPresent
name: tomcat-new
- image: nginx
imagePullPolicy: IfNotPresent
name: nginx


运行
kubectl apply -f mypod.yaml

查看pod日志输出

1、查看指定pod的日志

kubectl logs <pod_name>

kubectl logs -f <pod_name> #类似tail -f的方式查看(tail -f 实时查看日志文件 tail -f 日志文件log)

2、查看指定pod中指定容器的日志

kubectl logs <pod_name> -c <container_name>

查看所有名称空间的pod

kubectl get pods --all-namespaces

卸载K8S

kubeadm reset  重置
systemctl stop kubelet 停止kubelet


标签:kubectl,tomcat,get,--,tomcat6,集群,操作,pod,K8S
From: https://blog.51cto.com/u_15899048/5903400

相关文章

  • Linux搭建ElasticSearch集群
    前言这是整个ElasticSearch搭建的最后一篇文章,其实对我而言ElasticSearch在Linux上搭建集群写这篇文章意义并不大,只是为了补充这个空白而已,所以这篇文章并不会讲解很详细......
  • ElasticSearch集群数据读写流程
    前言本章作为ElasticSearch分布式集群的附属章节,主要讲解ElasticSearch集群环境下数据是如何读写的,既然讲到读写,那么ElasticSearch的更新就是基于二者的结合,顺带也讲一下......
  • ElasticSearch分布式集群
    前言关于ElasticSearch集群概念这里就不多废话了,详细可见ElasticSearch基本介绍、ElasticSearch集群系统架构单节点集群我们可以创建一个索引,为这个索引创建三个分片......
  • ElasticSearch集群概念
    单机存在的问题单台Elasticsearch服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集......
  • ElasticSearch集群系统架构
    前言全面几篇文章主要是使用单机跑ElasticSearch的,在生产环境为了保证高可用和高吞吐量我们都会采用集群的方式部署。那么本章不涉及ElasticSearch集群的搭建,只涉及理论......
  • Windows搭建ElasticSearch集群
    前言在搭建ElasticSearch集群前,可以先看看往期文章Windows安装ElasticSearch,可以使用上篇文章中下载ElasticSearch搭建准备将下载好的ElasticSearch复制三分,node1为......
  • 集群常见的基本形式
    集群的目标高可用:,是当一台服务器停止服务后,对于业务及用户毫无影响。停止服务的原因可能由于网卡、路由器、机房、CPU负载过高、内存溢出、自然灾害等不可预期的原因导致......
  • JSON端口操作实例
    JSON端口可直接实现在JSON和XML之间进行转换。端口会自动检测输入文件是JSON还是XML,然后将文件在两种格式间相互转换。该端口较多的是运用在API接口调用集成方案......
  • k8s拷贝文件
    k8s拷贝文件1、从宿主机目录拷贝到pod中例如,需要把宿主机中/opt/test1.txt文件拷贝到pod中的/opt目录中还是以wyn-project1-7957cdf65f-ds7lh这个pod为例查......
  • 今天在做底层数据库操作时,又用到了静态类,所以,单拿出来再说说它
    静态类相当于一个sealedabstract类,主要的一个优点是写在栈中,安全高速稳定,而且在执行的时候,十分优先。类可以声明为​​static​​​的,以指示它仅包含静态成员。不能......