версия kubernetes: 1.5.2
os: centos 7
версия etcd: 3.4.0
Сначала я создаю модуль etcd, файл etcd dockerfile и etcd pod:
etcd dockerfile:
FROM alpine
COPY . /usr/bin
WORKDIR /usr/bin
CMD etcd --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379
EXPOSE 2379
файл pod yaml
apiVersion: v1
kind: Pod
metadata:
name: etcd
namespace: storageplatform
labels:
app: etcd
spec:
containers:
- name: etcd
image: "karldoenitz/etcd:3.4.0"
ports:
- containerPort: 2379
hostPort: 12379
После создания образа docker и pu sh в dockerhub я запускаю команду kubectl apply -f etcd.yaml
для создать модуль etcd. Ip пакета etcd 10.254.140.117
, я выполнил команду use ETCDCTL_API=3 etcdctl --endpoints=175.24.47.64:12379 put 1 1
и получил OK
.
Мой сервис yaml:
apiVersion: v1
kind: Service
metadata:
name: storageservice
namespace: storageplatform
spec:
type: NodePort
ports:
- port: 12379
targetPort: 12379
nodePort: 32379
selector:
app: etcd
применил файл yaml для создания service.run команда kubectl get services -n storageplatform
, я получил эту информацию.
NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
storageplatform storageservice 10.254.140.117 <nodes> 12379:32379/TCP 51s
В конце концов, я запускаю команду
ETCDCTL_API=3 etcdctl --endpoints=10.254.140.117:32379 get 1
или
ETCDCTL_API=3 etcdctl --endpoints={host-ip}:32379 get 1
Я получил Error: context deadline exceeded
.
В чем дело ? Как сделать услугу полезной?