创建rc
代码清单4.4 kubia-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: kubia
spec:
replicas: 3
selector:
app: kubia
template:
metadata:
labels:
app: kubia
spec:
containers:
- name: kubia
image: swr:6666/ems/kubia:v1
ports:
- containerPort: 8080
这个文件将创建 3
个 pod
,每个 pod 都包含一个app: kubia
的标签,并开放提供服务的8080端口。
查看pod创建结果
执行创建命令,并查看创建的pod
$ kubectl create -f kubia-rc.yaml
replicationcontroller/kubia created
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
kubia-5rskv 0/1 ContainerCreating 0 11s
kubia-9c64m 0/1 ContainerCreating 0 11s
kubia-j29mx 0/1 ContainerCreating 0 11s
等会再查看pod创建情况
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
kubia-5rskv 1/1 Running 0 76s
kubia-9c64m 1/1 Running 0 76s
kubia-j29mx 1/1 Running 0 76s
kubia-manual 1/1 Running 0 34m
查看互联
$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kubia-5rskv 1/1 Running 0 16m 172.30.4.58 2059-8086-8311-272--17 <none> <none>
kubia-9c64m 1/1 Running 0 16m 172.30.4.59 2059-8086-8311-272--18 <none> <none>
kubia-j29mx 1/1 Running 0 16m 172.30.4.60 2059-8086-8311-272--16 <none> <none>
我们模拟在容器 kubia-5rskv 中访问另一个容器 kubia-9c64m 的场景:
通过查看kubia-9c64m的ip是172.30.4.59
$ kubectl exec kubia-5rskv -- curl -s http://172.30.4.59:8080
This is v3 running in pod kubia-9c64m
这条命令里的 --
是一个分隔符,之前的部分是属于kubectl的,之后的是属于要在pod 内部执行的命令
。 等价于先登入容器,然后在容器内部执行一个操作
$ kubectl exec kubia-5rskv -it sh
# curl -s 172.30.4.59:8080
This is v3 running in pod kubia-9c64m
# curl 172.30.4.59:8080
This is v3 running in pod kubia-9c64m
在容器内部执行curl命令时,可以不指定 -s参数