您的位置:首页 > 其它

Kubernetes之kubectl常用命令

2017-12-19 15:30 477 查看
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来区分的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息