dong5300 发表于 2018-1-4 14:19:41

kubernetes 留言版DEMO

  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:
2  
selector:
  
name: redis
-master  
template:
  
metadata:
  
labels:
  
name: redis
-master  
spec:
  
containers:
  

- name: master  
image: kubeguide
/redis-master  
ports:
  

- containerPort: 6379  

  发布到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 1 21d  
$kubectl
get po  
NAME READY STATUS RESTARTS AGE
  
redis
-master-69j7a 1/1 Running 7 20d  

  创建与之对应的service
  编写 redis-master-service.yaml
  

apiVersion: v1  
kind: Service
  
metadata:
  
name: redis
-master  
labels:
  
name: redis
-master  
spec:
  
ports:
  

- port: 6379  
targetPort:
6379  
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> 6379/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:
2  
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: 6379  

  发布到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: 6379  
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:
3  
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: 80  

  发布到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: 80  
nodePort:
30001  
selector:
  
name: frontend
  

  创建服务
  

$kubectl create -f frontend-service.yaml  

  查看
  

$kubectl get svc  

  4 通过浏览器访问
  localhost:30001
  备注 k8s需要容器 gcr.io/google_containers/pause
页: [1]
查看完整版本: kubernetes 留言版DEMO