centos安裝kubernetes1.3(二)

來源:互聯網
上載者:User

續上文,在部署docker之前需要預習下docker命令 docker基礎命令

docke pull nginx#下載nginx鏡像

docke push 192.168.161.117:5000/os/centos #上傳本地製作的鏡像到本地鏡像庫

docker images #查看下載到本地的鏡象

docker tag 980e0e4c79ec  192.168.161.117:5000/os/centos     #將Image id鏡像為980e0e4c79ec的鏡像標記為192.168.161.117:5000/os/centos

docker run -it   nginx  /bin/bash         #進入互動模式下的nginx容器,相當於一個小的linux系統,裡面只安裝了nginx
docker開啟sshd 通過docker指定容器id或者kubectl指定pod串連到相應的docker容器,這樣操作不是很方便。開啟docker容器的sshd服務,通過宿主機的連接埠映射docker容器的sshd服務的內部連接埠,可以實現宿主機的連接埠下訪問內部docker。

docker run -d -p 10022:22 centos_sshd /usr/sbin/sshd -D       #使用 安裝了sshd 的tomcentos_sshd鏡像,啟動時啟動sshd服務。10022:22前者是宿主機的連接埠,後者是docker容器的連接埠

ssh 宿主機 -p 10022 #遠程登入docker容器 搭建本地鏡像庫

docker pull registry       #下載registry鏡像,使用docker直接部署本地鏡像庫
 
docker run -d -p 5000:5000 registry              ##以registry 鏡像啟動docker容器,搭建本地鏡像庫,監聽5000連接埠

curl -X GET http://127.0.0.1:5000/v2/_catalog      ##查看本地倉庫已push鏡像     


部署k8s pod與service 以nginx鏡像為樣本,通過docke pull nginx下載鏡像到本地

k8s部署支援yaml,json,命令,dashboard管理平台4種方式部署pod\service 1  .kubectl run my-nginx --image=nginx --replicas=2 --port=80


2.   ./kubectl create -f nginx_svc.json 或者kubectl expose deployment my-nginx  --type=NodePort --name=my-nginx-serv 

3.命令完成後,通過kubectl get pod     查看pod   
NAME                                           READY     STATUS    RESTARTS   AGE
my-nginx-2494149703-7040i                      1/1       Running   0          4d
my-nginx-2494149703-8cwj9                      1/1       Running   2          4d

4.命令完成後,通過  kubectl get service 查看service
NAME                 CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
my-nginx-serv        10.10.10.112   <nodes>       8080/TCP   5d

5.如果pod運行失敗,上圖中status不為Running狀態。通過kubectl describle pod my-nginx-2494149703-7040i 查看失敗日誌 Name: my-nginx-2494149703-7040i
Namespace: default
Node: 192.168.161.117/192.168.161.117
Start Time: Thu, 05 Jan 2017 14:52:26 +0800
Labels: pod-template-hash=2494149703
run=my-nginx
Status: Running
IP: 10.1.83.9
Controllers: ReplicaSet/my-nginx-2494149703
Containers:
  my-nginx:
    Container ID: docker://aa0540cabb114f6291399b1675f9e84fdb8baffcc8c64f1689f65ec63b5f8a49
    Image: nginx
    Image ID: docker://sha256:01f818af747d88b4ebca7cdabd0c581e406e0e790be72678d257735fad84a15f
    Port: 80/TCP
    State: Running
      Started: Thu, 05 Jan 2017 14:52:29 +0800
    Ready: True
    Restart Count: 0
    Environment Variables: <none>
Conditions:
  Type Status
  Initialized True 
  Ready True 
  PodScheduled True 
No volumes.
QoS Tier: BestEffort
No events.

6.通過./kubectl exec my-nginx-2494149703-7040i -i -t -- bash -il進行docker容器調試
root@my-nginx-2494149703-7040i:/# pwd
/
root@my-nginx-2494149703-7040i:/# ls
bin   dev  home  lib64 mnt  proc  run srv  tmp  var
boot  etc  lib media opt  root  sbin  sys  usr
root@my-nginx-2494149703-7040i:/# ps -ef|grep nginx
root         1     0  0 Jan05 ?        00:00:00 nginx: master process nginx -g daemon off;
nginx        7     1  0 Jan05 ?        00:00:00 nginx: worker process
root        44    34  0 08:27 ?        00:00:00 grep nginx
root@my-nginx-2494149703-7040i:/# find / -name error.log
/var/log/nginx/error.log

6.通過dashboard查看nodes、serive、pod
7.訪問nginx 通過內網訪問 ,30451連接埠是service配置負載平衡類型為nodePort後,可以通過宿主機Ip+連接埠訪問service.service 實現負載平衡訪問Pod .由Pod由多個docker組成,此處ngnx一個pod由一個docker組成。 訪問  http://192.168.161.117:30451/         可以返回welcome to nginx畫面



注意services圖 中clusterIp 與internal endpoints內容。cluster ip是10.10.10.112,這是叢集的內網Ip,在安裝了kubelproxy的主機上可以訪問。internal endpoints中的30451連接埠,宿主機區域網路內任意主機都可以訪問。 通過內部叢集訪問,ip與連接埠取自第4步中CLUSTER-IP與PORT或者對應本圖中的cluster ip與internal endpoints內容的連接埠8080       curl http:// 10.10.10.112:8080/



pod內部nginx容器也會分配內部Ip10.1.83.9 與10.1.83.7子網,如果node有多台。每台宿主機都是一個獨立子網段,centos7下安裝與部署kubernets1.3(一)有描述。
訪問以下地址,均能返回welcome to nginx的成功介面 curl http:// 10.10.83.1:8080/ curl http:// 10.10.83.7:8080/

更重要的是每個宿主機的獨立子網,是相互能互連的。通過docker run -it   centos   /bin/bash到兩台不同宿主機上,分別進行centos作業系統命令介面,相互ping對方Ip是可以相互ping通的。相互訪問nginx pod的訪問地址也是能通的。 後續,再續寫測試子網互連的例子+製做tomcat 應用鏡像的樣本。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.