一、CentOS7下安装etcd和kubernetesnode
[root@jin-120 ~]# yum install -y etcd kubernetes
二、关闭防火墙并设置开机不启动mysql
[root@jin-120 ~]# systemctl stop firewalld [root@jin-120 ~]# systemctl disable firewalld
三、修改配置文件/etc/sysconfig/docker,把OPTIONS的内容设置为:linux
OPTIONS='--selinux-enabled=false --insecure-registry grc.io --log-driver=journald --signature-verification=false'
再修改kubernetes apiserver的配置文件/etc/kubernetes/apiserver,把--ADMISSION_CONTROL参数中的ServiceAcconut删除。web
四、按顺序启动如下全部服务:sql
for i in etcd docker kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy do systemctl start $i done
至此,咱们的单机版的kubernetes集群环境就安装好了。docker
一、建立一个MySQL服务的RC定义文件mysql-rc.yaml,内容以下:数据库
apiVersion: v1 kind: ReplicationController metadata: name: mysql spec: replicas: 1 selector: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.6 ports: - containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD value: "123456"
二、执行命令kubectl create -f mysql-rc.yaml建立RC,而后再用命令kubectl get rc查看建立的RC:vim
[root@jin-120 ~]# kubectl create -f mysql-rc.yaml replicationcontroller "mysql" created [root@jin-120 ~]# kubectl get rc NAME DESIRED CURRENT READY AGE mysql 1 1 1 1m
再查看RC定义生成的pod:api
[root@jin-120 ~]# kubectl get pod NAME READY STATUS RESTARTS AGE mysql-xcgj0 1/1 Running 0 1m
三、咱们再建立一个关于MySQL service的文件:vim mysql-svc.yaml,内容以下:浏览器
apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql
运行命令建立service:
[root@jin-120 ~]# kubectl create -f mysql-svc.yaml service "mysql" created
查看是否建立成功:
[root@jin-120 ~]# kubectl get svc NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes 10.254.0.1 <none> 443/TCP 1d mysql 10.254.70.236 <none> 3306/TCP 11s
能够看到,MySQLservice被分配了一个10.254.70.236的Cluster IP,这样,kubernetes集群中的其余新建立的Pod就能够经过service的Cluster IP+port6379来链接和访问了。
一、建立对应的RC文件myweb-rc.yaml,内容以下:
kind: ReplicationController metadata: name: myweb spec: replicas: 1 selector: app: myweb template: metadata: labels: app: myweb spec: containers: - name: myweb image: kubeguide/tomcat-app:v1 ports: - containerPort: 8080 env: - name: MYSQL_SERVICE_HOST value: 'mysql' - name: MYSQL_SERVICE_PORT value: '3306'
二、执行命令kubectl create -f myweb-rc.yaml建立RC,而后再用命令kubectl get rc查看建立的RC:
[root@jin-120 ~]# kubectl create -f myweb-rc.yaml replicationcontroller "myweb" created [root@jin-120 ~]# kubectl get rc NAME DESIRED CURRENT READY AGE mysql 1 1 1 13m myweb 1 1 1 16s
再查看RC定义生成的pod:
[root@jin-120 ~]# kubectl get pods NAME READY STATUS RESTARTS AGE mysql-xcgj0 1/1 Running 2 15m myweb-jmll1 1/1 Running 0 1m
三、咱们再建立一个关于myweb service的文件:vim myweb-svc.yaml,内容以下:
apiVersion: v1 kind: Service metadata: name: myweb spec: type: NodePort ports: - port: 8080 nodePort: 30001 selector: app: myweb
建立并查看建立的service:
[root@jin-120 ~]# kubectl create -f myweb-svc.yaml service "myweb" created [root@jin-120 ~]# kubectl get svc NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes 10.254.0.1 <none> 443/TCP 1d mysql 10.254.70.236 <none> 3306/TCP 13m myweb 10.254.218.251 <nodes> 8080:30001/TCP 9s
至此,咱们的集群就已经搭建完毕。
在浏览器里输入地址:http://虚拟机IP:30001/demo/:
看到如上网页,说明咱们搭建的单机版kubernetes集群成功了。
咱们能够尝试单击"Add"按钮添加一条记录并提交,提交后,数据就会被写入MySQL数据库中。