Kubernetes之kubectl常用命令

来源:互联网 发布:软件安装包备份 编辑:程序博客网 时间:2024/06/08 00:48

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: v1kind: Podmetadata:   name: php-test   labels:      name: php-testspec:  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: v1kind: ReplicationControllermetadata:   name: php-controller   labels:      name: php-controllerspec:  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: v1kind: Servicemetadata:  name: php-service  labels:    name: php-servicespec:  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来区分的。

原创粉丝点击