单机版Kubernetes

说明:CentOS7系统 ip地址 192.168.1.105
同时担任etcd服务器、master和minion角色

[root@localhost ~]# uname -a
Linux localhost 3.10.0-327.36.2.el7.x86_64 #1 SMP Mon Oct 10 23:08:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim virt7-docker-common-release.repo
[virt7-docker-common-release]
name=virt7-docker-common-release
baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/
gpgcheck=0
enabled=1
[root@localhost yum.repos.d]# yum install -y etcd kubernetes
[root@localhost yum.repos.d]# vim /etc/sysconfig/docker

OPTIONS=’–selinux-enabled=false –insecure-registry gcr.io –log-driver=journald’

[root@localhost ~]# vim /etc/kubernetes/apiserver

###
# kubernetes system config
#
# The following values are used to configure the kube-apiserver
#

# The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"

# Port minions listen on
KUBELET_PORT="--kubelet-port=10250"

# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"

# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

# default admission control policies
#KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

# Add your own!
KUBE_API_ARGS=""

[root@localhost ~]# vim /etc/kubernetes/config

###
# kubernetes system config
#
# The following values are used to configure various aspects of all
# kubernetes services, including
#
#   kube-apiserver.service
#   kube-controller-manager.service
#   kube-scheduler.service
#   kubelet.service
#   kube-proxy.service
# logging to stderr means we get it in the systemd journal
KUBE_LOGTOSTDERR="--logtostderr=true"

# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"

# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"

# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://127.0.0.1:8080"

[root@localhost ~]# vim /etc/kubernetes/kubelet

###
# kubernetes kubelet (minion) config

# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=0.0.0.0"

# The port for the info server to serve on
KUBELET_PORT="--port=10250"

# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=127.0.0.1"

# location of the api-server
KUBELET_API_SERVER="--api-servers=http://127.0.0.1:8080"

# pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

# Add your own!
KUBELET_ARGS=""

作为etcd服务器启动:
[root@localhost yum.repos.d]# systemctl start etcd
作为master启动:
[root@localhost yum.repos.d]# systemctl start kube-apiserver
[root@localhost yum.repos.d]# systemctl start kube-controller-manager
[root@localhost yum.repos.d]# systemctl start kube-scheduler
作为monion启动:
[root@localhost yum.repos.d]# systemctl start docker
[root@localhost yum.repos.d]# systemctl start kubelet
[root@localhost yum.repos.d]# systemctl start kube-proxy
禁掉firewalld与selinux
[root@localhost yum.repos.d]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost yum.repos.d]# getenforce
Permissive

[root@localhost yum.repos.d]# docker pull kubeguide/redis-master
Using default tag: latest
Trying to pull repository docker.io/kubeguide/redis-master …
sha256:e11eae36476b02a195693689f88a325b30540f5c15adbf531caaecceb65f5b4d: Pulling from docker.io/kubeguide/redis-master
a3ed95caeb02: Pull complete
9cf7e98c567b: Pull complete
d2ff49536f4d: Pull complete
f94adccdbb9c: Pull complete
6ead1ce47d52: Pull complete
62a3114e0031: Pull complete
dcb903eb752c: Pull complete
0c2c7c7f11ef: Pull complete
c7aa377bfeeb: Pull complete
3d7aab9ba591: Pull complete
85e54ffe4941: Pull complete
4756da354f92: Pull complete
Digest: sha256:e11eae36476b02a195693689f88a325b30540f5c15adbf531caaecceb65f5b4d
Status: Downloaded newer image for docker.io/kubeguide/redis-master:latest
[root@localhost yum.repos.d]# docker pull kubeguide/guestbook-redis-slave
Using default tag: latest
Trying to pull repository docker.io/kubeguide/guestbook-redis-slave …
sha256:a36fec97659fe96b5b28750d88b5cfb84a45138bcf1397c8e237031b8855c58c: Pulling from docker.io/kubeguide/guestbook-redis-slave
70c964415e86: Pull complete
a3ed95caeb02: Pull complete
3229dc640f23: Pull complete
cc7958dd97b7: Pull complete
448093e93ac3: Pull complete
2bbcbb97d47b: Pull complete
87b4f6fd65c9: Pull complete
5b712ee108fe: Pull complete
a1a961e320bc: Pull complete
6f37ec7ab693: Pull complete
Digest: sha256:a36fec97659fe96b5b28750d88b5cfb84a45138bcf1397c8e237031b8855c58c
Status: Downloaded newer image for docker.io/kubeguide/guestbook-redis-slave:latest
[root@localhost yum.repos.d]# docker pull kubeguide/guestbook-php-frontend
Using default tag: latest
Trying to pull repository docker.io/kubeguide/guestbook-php-frontend …
sha256:195181e0263bcee4ae0c3e79352bbd3487224c0042f1b9ca8543b788962188ce: Pulling from docker.io/kubeguide/guestbook-php-frontend

4d2e9ae40c41: Pulling fs layer
a3ed95caeb02: Pulling fs layer
54a7f0f294dc: Pulling fs layer
a25fe735d07d: Pulling fs layer
0c906d123edf: Pulling fs layer
444908521f56: Pulling fs layer
8c642d1244eb: Pulling fs layer
88bb2a5d51e9: Pull complete
d74e6c5bcbaf: Pull complete
54d6cf15da9c: Pull complete
55f6a4aed401: Pull complete
45539a0ff9ad: Pull complete
023f5f1f5f40: Pull complete
dfdabf8691ea: Pull complete
09a6ba60b929: Pull complete
1b0035990bdd: Pull complete
d455473d6864: Pull complete
7200260c49a3: Pull complete
400be507a72c: Pull complete
6d9e0a886b69: Pull complete
66e7bb4a52de: Pull complete
Digest: sha256:195181e0263bcee4ae0c3e79352bbd3487224c0042f1b9ca8543b788962188ce
Status: Downloaded newer image for docker.io/kubeguide/guestbook-php-frontend:latest
[root@localhost yum.repos.d]# mkdir /opt/kube-guestbook
[root@localhost yum.repos.d]# cd /opt/kube-guestbook
[root@localhost kube-guestbook]# vim 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: redis
ports:
- containerPort: 6379
[root@localhost kube-guestbook]# kubectl create -f redis-master-controller.yaml
replicationcontroller “redis-master” created
[root@localhost kube-guestbook]# vim redis-master-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
name: redis-master
spec:
selector:
name: redis-master
ports:
- port: 6379
targetPort: 6379
[root@localhost kube-guestbook]# kubectl create -f redis-master-service.yaml
service “redis-master” created
[root@localhost kube-guestbook]# vim 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
ports:
- containerPort: 6379
env:
- name: GET_HOSTS_FROM
value: env
[root@localhost kube-guestbook]# kubectl create -f redis-slave-controller.yaml
replicationcontroller “redis-slave” created
[root@localhost kube-guestbook]# vim redis-slave-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-slave
labels:
name: redis-slave
spec:
selector:
name: redis-slave
ports:
- port: 6379
[root@localhost kube-guestbook]# kubectl create -f redis-slave-service.yaml
service “redis-slave” created
[root@localhost kube-guestbook]# vim 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
[root@localhost kube-guestbook]# kubectl create -f frontend-controller.yaml
replicationcontroller “frontend” created
[root@localhost kube-guestbook]# vim frontend-service.yaml
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
name: frontend
spec:
selector:
name: frontend
type: NodePort
ports:
- port: 80
nodePort: 30001
[root@localhost kube-guestbook]# kubectl create -f frontend-service.yaml
service “frontend” created
[root@localhost kube-guestbook]# kubectl get pods
NAME READY STATUS RESTARTS AGE
frontend-0vzjc 1/1 Running 0 10m
frontend-urks6 1/1 Running 0 10m
frontend-z5zxx 1/1 Running 0 10m
redis-master-0bum6 1/1 Running 0 10m
redis-master-igf57 1/1 Running 0 10m
redis-slave-1c9tr 1/1 Running 0 10m
redis-slave-r2lkf 1/1 Running 0 10m
[root@localhost kube-guestbook]# kubectl get services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
frontend 10.254.217.132 < nodes > 80/TCP 1m
kubernetes 10.254.0.1 < none > 443/TCP 1h
redis-master 10.254.30.138 < none > 6379/TCP 10m
redis-slave 10.254.118.114 < none > 6379/TCP 10m
[root@localhost kube-guestbook]# kubectl get rc
NAME DESIRED CURRENT READY AGE
frontend 3 3 3 10m
redis-master 2 2 2 11m
redis-slave 2 2 2 10m
访问 http://192.168.1.105:8080 查看信息
访问 http://192.168.1.105:30001 进行测试

参考文章:
http://blog.csdn.net/xts_huangxin/article/details/51130223
http://www.cnblogs.com/99fu/p/6070232.html
http://blog.liuts.com/post/247/
https://yq.aliyun.com/articles/11035

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值