K8s權威指南學習

  • 第一章 k8s入門(簡單的Java web項目)

    環境: VMware Workstation在本機虛擬一個64位的Centos7虛擬機

    • 環境準備

      1. 關閉防火牆

        systemctl disable firewalld
        systemctl stop firewalld
        
      2. 安裝etcd和Kubernetes軟件(會自動安裝Docker軟件)

        yum install -y etcd kubernetes
        
      3. 按順序啓動所有服務

        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
        
    • 啓動MySQL服務

      1. MySQL鏡像

        docker pull daocloud.io/library/mysql:latest
        
      2. 構建Mysql RC定義文件(可以使用vim創建),命名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
        			ports:
        			- containerPort: 3306
        			env:
        			- name: MYSQL_ROOT_PASSWORD
        			  value: "123456"
        
      3. 發佈到kubernetes集羣中,在master節點執行命令(注:此時可能出現問題,如:問題1:no resource found,問題2:status的狀態是ContainerCreating而不是running,如果出現此問題請看關於創建rc和pod出現的問問題

        $ kubectl create -f mysql-rc.yaml 
        replicationcontroller "mysql" created
        

        查看創建的rc

        $ kubectl get rc 
        NAME DESIRED CURRENT READY AGE 
        mysql 1 1 1 14s
        

        查看pod創建情況

        $ kubectl get pods 
        NAME READY STATUS RESTARTS AGE 
        mysql-srd1m 1/1 Running 0 41s
        
      4. 創建一個與之關聯的k8s Service-Mysql的定義文件(文件名爲mysql-svc.yaml),內容如下:

        apiVersion: v1
        kind: Service
        metadata:
        name: mysql
        spec:
        ports:
        - port: 3306
        selector:
        app: mysql
        

        運行kubectl命令,創建service

        kubectl create -f mysql-svc.yaml
        

        查看剛剛創建的service

        $ kubectl get svc
        NAME         CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
        kubernetes   10.254.0.1     <none>        443/TCP    8d
        mysql        10.254.55.41   <none>        3306/TCP   13s
        
    • 啓動Tomcat服務

      1. 拉取Tomcat鏡像
        	docker pull kubeguide/tomcat-app:v2
        
      2. 構建Tomcat RC定義文件,命名myweb-rc.yaml 內容如下:
        		apiVersion: v1
        		kind: ReplicationController
        		metadata:
        		  name: myweb
        		spec:
        		  replicas: 2
        		  selector:
        			app: myweb
        		  template:
        			metadata:
        			  labels:
        				app: myweb
        			spec:
        			  containers:
        				- name: myweb
        				  image: kubeguide/tomcat-app:v1
        				  ports:
        				  - containerPort: 8080
        
        完成rc創建和驗證
        	$ kubectl create -f myweb-rc.yaml 
        	replicationcontroller "myweb" created
        	$ kubectl get rc 
        	NAME      DESIRED   CURRENT   READY     AGE
        	mysql     1         1         1         23h
        	myweb     2         2         2         12s
        	$ kubectl get pods
        	NAME          READY     STATUS    RESTARTS   AGE
        	mysql-srd1m   1/1       Running   1          23h
        	myweb-fqlvz   1/1       Running   0          40s
        	myweb-ggrlg   1/1       Running   0          40s
        
      3. 創建對應的Service,文件名(myweb-svc.yaml),內容如下
        	apiVersion: v1
        	kind: Service
        	metadata: 
        	name: myweb
        	spec:
        	type: NodePort
        	ports:
        	- port: 8080
        	nodePort: 30001
        	selector:
        	app: myweb
        
        創建並驗證
        	$ kubectl create -f myweb-svc.yaml 
        	service "myweb" created
        	$ kubectl get services
        	NAME         CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
        	kubernetes   10.254.0.1       <none>        443/TCP          8d
        	mysql        10.254.55.41     <none>        3306/TCP         42m
        	myweb        10.254.237.187   <nodes>       8080:30001/TCP   21s
        
  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章