Kubernetes之kubectl常用命令

kubectl是一个用于操作kubernetes集群的命令行接口,通过利用kubectl的各种命令可以实现各种功能,是在使用kubernetes中非常常用的工具。


(一)pod

对Pod的创建可以通过Yaml或Json格式的配置文件来完成。关于Yaml或Json中都能写哪些参数,参考官网http://kubernetes.io/docs/user-guide/pods/multi-container/,其中YAML( Ain't Markup Language),另一种标记语言。

编写yaml文件

apiVersion: v1
kind: Pod
metadata:
   name: php-test
   labels: 
     name: php-test
spec:
  containers:
  - name: php-test
    image: 192.168.174.131:5000/php-base:1.0
    env:
    - name: ENV_TEST_1
      value: env_test_1
    - name: ENV_TEST_2
      value: env_test_2
    ports:
    - containerPort: 80
      hostPort: 80 


创建pod
kubectl create -f ./php-pod.yaml 
查看pod
#kubectl get pods

#kubectl get pod php-test -o wide

#kubectl describe pod php-test
[root@localhost k8s]# kubectl get pod php-test -o wide  
NAME       READY     STATUS    RESTARTS   AGE       NODE  
php-test   1/1       Running   0          3m        192.168.174.130  
[root@localhost k8s]#  

验证
登入到容器实际所在的机器上验证下:
192.168.174.130
执行
sudo docker ps
可以看到新创建的pod,发现有2个容器,一个对应的镜像是php-base,一个对应的镜像是kubernetes/pause,它是Netowrk Container,每启动一个Pod都会附加启动这样一个容器,它的作用就只是简单的等待,设置Pod的网络。

Web端验证
php-base中php有添加了个info.php页面,通过浏览器访问http://192.168.174.130/info.php,发现容器正常工作,说明pod没问题。
http://192.168.174.130/info.php

删除
kubectl delete pod NAME
举例:
kubectl delete pod php-test

(二)RC
编写YAML文件
php-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
   name: php-controller
   labels: 
     name: php-controller
spec:
  replicas: 2
  selector:
     name: php-test-pod
  template: 
    metadata:
     labels:
       name: php-test-pod
    spec:
      containers:
      - name: php-test
        image: 192.168.174.131:5000/php-base:1.0
        env:
        - name: ENV_TEST_1
          value: env_test_1
        - name: ENV_TEST_2
          value: env_test_2
        ports:
        - containerPort: 80

创建
kubectl create -f php-controller.yaml
查询
# kubectl get rc

# kubectl get rc php-controller

# kubectl describe rc php-controller 
删除
#kubectl delete -f php-controller.yaml
#会删除rc,也会删除rc下的所有pod

#kubectl delete rc rcName
#删除rc,但是pod不会收到影响

(三)Service
编写YAML文件
php-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: php-service
  labels:
    name: php-service
spec:
  ports:
  - port: 8081
    targetPort: 80
    protocol: TCP
  selector:
    name: php-test-pod
创建
kubectl create -f php-service.yaml
查询
kubectl get service
删除
kubectl delete service php-service

(四)区别
本文只列出了简单的使用,里面还有很多负责的使用,比如balance等后续再介绍。可以注意到三者的YAML,主要是通过kind来区分的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值