在kubernetes集群中部署應(yīng)用

在kubernetes集群中部署應(yīng)用黍特,可以使用kubectl run的方式

kubectl run nginx-pod --image=nginx:1.14.2

可以通過kubectl create deployment的方式創(chuàng)建

kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1

或者是采用執(zhí)行yaml文件的方式馒吴,yaml的格式為:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.14.2
          ports:
          - containerPort: 80

執(zhí)行Kubectl apply的命令

[root@k8s-master k8s]# kubectl apply -f nginx.yaml 
deployment.apps/nginx-deployment created

查看nginx-deployment

[root@k8s-master k8s]# kubectl describe deployment nginx-deployment
Name:                   nginx-deployment
Namespace:              default
CreationTimestamp:      Fri, 17 Jul 2020 11:04:38 +0800
Labels:                 app=nginx
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=nginx
Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=nginx
  Containers:
   nginx:
    Image:        nginx:1.14.2
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   nginx-deployment-6b474476c4 (2/2 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  29m   deployment-controller  Scaled up replica set nginx-deployment-6b474476c4 to 2

在master上查看pod

[root@k8s-master k8s]# kubectl get pods -o wide
NAME                                READY   STATUS    RESTARTS   AGE   IP              NODE         NOMINATED NODE   READINESS GATES
nginx-deployment-6b474476c4-nzzkj   1/1     Running   0          33m   10.244.58.196   k8s-node02   <none>           <none>
nginx-deployment-6b474476c4-vhwqs   1/1     Running   0          33m   10.244.85.193   k8s-node01   <none>           <none>

可以通過curl對(duì)應(yīng)的IP地址湾碎,查看目前的nginx已經(jīng)工作正常

[root@k8s-master k8s]# curl 10.244.58.196
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a >nginx.org</a>.<br/>
Commercial support is available at
<a >nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

問題
現(xiàn)在可以再master節(jié)點(diǎn)和pod之間通過curl訪問缘回,使用的都是內(nèi)部的地址陷嘴,那么如何將這些服務(wù)暴露到kubernetes集群外面呢每聪?
可以通過kubectl expose的命令將這個(gè)deployment expose成為service练般,可以被外部訪問。

[root@k8s-master k8s]# kubectl expose deployment/nginx-deployment --type="NodePort" --port 80
service/nginx-deployment exposed

查看一下service

[root@k8s-master k8s]# kubectl get services
NAME               TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes         ClusterIP   10.1.0.1       <none>        443/TCP        38h
nginx-deployment   NodePort    10.1.223.127   <none>        80:30965/TCP   12s

此時(shí)可以在master上通過curl來訪問127.0.0.1上的nginx服務(wù)了

root@k8s-master k8s]# curl 127.0.0.1:30965
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a >nginx.org</a>.<br/>
Commercial support is available at
<a >nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

再打開一個(gè)終端服爷,并不鏈接到虛擬機(jī)杜恰,直接訪問master的bridge網(wǎng)絡(luò)的IP地址+expose的端口,也可以訪問仍源。

JackZhangs-MacBook-Pro:~ jackzhang$ curl 192.168.31.95:30965
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a >nginx.org</a>.<br/>
Commercial support is available at
<a >nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

通過本機(jī)的瀏覽器直接訪問也可以心褐,如果使用了代理需要設(shè)置不對(duì)此地址段使用代理


image.png

下一個(gè)問題
現(xiàn)在我們是有兩個(gè)POD提供nginx的服務(wù),那么他們之間的負(fù)載均衡是怎么做的呢笼踩?
是否需要什么特殊的設(shè)置呢逗爹?
是否從哪里可以看到每次訪問是哪個(gè)pod提供的服務(wù)呢?

參考文檔
使用Deployment運(yùn)行一個(gè)無狀態(tài)應(yīng)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嚎于,一起剝皮案震驚了整個(gè)濱河市掘而,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌于购,老刑警劉巖袍睡,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異价涝,居然都是意外死亡女蜈,警方通過查閱死者的電腦和手機(jī)持舆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門色瘩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人逸寓,你說我怎么就攤上這事居兆。” “怎么了竹伸?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵泥栖,是天一觀的道長簇宽。 經(jīng)常有香客問我,道長吧享,這世上最難降的妖魔是什么魏割? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮钢颂,結(jié)果婚禮上钞它,老公的妹妹穿的比我還像新娘。我一直安慰自己殊鞭,他們只是感情好遭垛,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著操灿,像睡著了一般锯仪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上趾盐,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天庶喜,我揣著相機(jī)與錄音,去河邊找鬼救鲤。 笑死溃卡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蜒简。 我是一名探鬼主播瘸羡,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼搓茬!你這毒婦竟也來了犹赖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤卷仑,失蹤者是張志新(化名)和其女友劉穎峻村,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锡凝,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粘昨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窜锯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片张肾。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锚扎,靈堂內(nèi)的尸體忽然破棺而出吞瞪,到底是詐尸還是另有隱情,我是刑警寧澤驾孔,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布芍秆,位于F島的核電站惯疙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏妖啥。R本人自食惡果不足惜霉颠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荆虱。 院中可真熱鬧掉分,春花似錦、人聲如沸克伊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愿吹。三九已至不从,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間犁跪,已是汗流浹背椿息。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坷衍,地道東北人寝优。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像枫耳,于是被迫代替她去往敵國和親乏矾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348