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