kubernates hello world
1 关闭防火墙
$systemctl disable firewalld
$systemctl stop firewalld
2 安装etcd 和 kubernates
$yum install -y etcd kubernates
3 修改配置
docker /etc/sysconfig/docker
OPTIONS='--registry-mirror=http://06ec3c30.m.daocloud.io --selinux-enabled=false --insecure-registry gcr.io'
kubernetes apiserver /etc/kubernates/apiserver
--admission-control 参数中的ServiceAccount 删除
4 顺序启动
$systemctl start etcd
$systemctl start docker
$systemctl start kube-apiserver
$systemctl start kube-controller-manager
$systemctl start kube-scheduler
$systemctl start kubelet
$systemctl start kube-proxy
单机版k8s 搭建完成
Hello word 留言板系统
依赖三个镜像:
docker.io/kubeguide/guestbook-php-frontend WEB前端
docker.io/kubeguide/redis-master 写留言
docker.io/kubeguide/guestbook-redis-slave 读取留言
1 创建master pod 和服务
编写 redis-master-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: redis-master
labels:
name: redis-master
spec:
replicas:
selector:
name: redis-master
template:
metadata:
labels:
name: redis-master
spec:
containers:
- name: master
image: kubeguide/redis-master
ports:
- containerPort:
发布到k8s集群
$kubectl create -f redis-master-controller.yaml
查看
$kubectl get rc
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS AGE
redis-master master kubeguide/redis-master name=redis-master 21d
$kubectl get po
NAME READY STATUS RESTARTS AGE
redis-master-69j7a / Running 20d
创建与之对应的service
编写 redis-master-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
name: redis-master
spec:
ports:
- port:
targetPort:
selector:
name: redis-master
$kubectl create -f redis-master-service.yaml
$kubectl get svc
NAME CLUSTER_IP EXTERNAL_IP PORT(S) SELECTOR AGE
redis-master 10.254.38.83 <none> /TCP name=redis-master 20d
2 创建redis-salve Pod 和服务
编写 redis-slave-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: redis-slave
labels:
name: redis-slave
spec:
replicas:
selector:
name: redis-slave
template:
metadata:
labels:
name: redis-slave
spec:
containers:
- name: slave
image: kubeguide/guestbook-redis-slave
env:
- name: GET_HOSTS_FROM
value: env
ports:
- containerPort:
发布到k8s集群
$kubectl create -f redis-slave-controller.yaml
$kubectl get rc
$kubectl get pod
创建 与之对应的service
编写 redis-slave-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-slave
labels:
name: redis-slave
spec:
ports:
- port:
selector:
name: redis-slave
$kubectl create -f redis-slave-service.yaml $kubectl get svc
3 创建frontend Pod 和服务
编写 frontend-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: frontend
labels:
name: frontend
spec:
replicas:
selector:
name: frontend
template:
metadata:
labels:
name: frontend
spec:
containers:
- name: frontend
image: kubeguide/guestbook-php-frontend
env:
- name: GET_HOSTS_FROM
value: env
ports:
- containerPort:
发布到k8s集群
$kubectl create -f frontend-controller.yaml
$kubectl get rc
$kubectl get pod
创建与之对应的service
编写 frontend-service.yaml
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
name: fronted
spec:
type: NodePort
ports:
- port:
nodePort:
selector:
name: frontend
创建服务
$kubectl create -f frontend-service.yaml
查看
$kubectl get svc
4 通过浏览器访问
localhost:30001
备注 k8s需要容器 gcr.io/google_containers/pause