Kubernetes入门(二)创建pod

pod的理解

①pod是一组并置的容器,是k8s的基本模块;
②容器只运行一个进程(包括子进程),而在包含容器的pod内,可以同时运行一些密切相关的进程;
③容器之间完全隔离,但pod内的容器共享相同的linux命名空间,共享相同的主机名、IP地址和端口空间,均工作在相同的IPC命名空间下,容器间可以通过IPC进行通信;
④pod和k8s资源都是通过向k8s的REST API提供json或者yaml文件来创建的。

基本命令

kubectl gkubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1et pods
kubectl get pods
创建一个服务,使得pod能被外界访问,通过服务对象公开它,LoadBalancer类型的服务,ClusterIP只能从集群内部访问
kubectl expose rc kubia --type=LoadBalancer --name kubia-http
kubectl get services
增加pod数量
kubectl scale rc kubia --replicas=30
k8s允许配置本地端口转发到指定pod的端口上,可用于测试特定的pod
kubectl port-forward kubia-manual 8888:8080
删除pod
kubectl delete -n default pod kubia-5nm8w
删除rc
kubectl delete -n default replicationcontroller kubia
删除服务
kubectl delete -n default service kubia-http
删除命名空间所有资源
kubectl delete all --all

pod的创建

apiVersion: v1
kind: Pod
metadata:
    name: kubia-manual
spec:
 containers:
 - image: luksa/kubia
   name: kubia
   ports:
   - containerPort: 8080
     protocol: TCP

创建指令

kubectl create -f xxx.yaml
kubectl get pods  #查看pod

设置pod标签

kubectl label pod <pod name> <new tag> #设置标签
kubectl label pod <pod name> <new tag> --overwrite #覆盖
kubectl get pod -L xxx,xxxx #以标签的形式查看pod
kubectl get pod -l env=debug # 使用标签选择器查看pod
kubectl delete pod -l xx=xx #按标签删除pod

命名空间

命名空间为资源提供了一个隔离的作用域,以及限制资源的使用
命令行创建命名空间

kubectl create namespace <name>

脚本创建

kubectl create -f xxx.yaml
apiVersion: v1
kind: Namespace
metadata:
    name: <name>

pod的健康管理-存活探针

创建带存活探针的pod

apiVersion: v1
kind: Pod
metadata:
    name: kubia-liveness
spec:
 containers:
 - image: luksa/kubia-unhealthy
   name: kubia
   livenessProbe:
     httpGet:
      path: /
      port: 8080

存活探针的设计应该保持轻量的原则,不应该消耗太多的计算资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值