一、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數據庫中。