通过学习《Kubernetes 实践入门》一书中的通信章节(初学者的Kubernetes入门)进行模仿练习,这是第二部分

背景情况

在我个人看来,我希望能够创建并部署能够运行未来应用程序的环境,以获得比基础设施知识更多的知识。我想要学习未来的知识,并进一步提升自己的知识更新。

在其中遇到这本书,并渐渐地记录下所做的事情,希望将来能够作为给未来的自己的一封信,并重新审视。

引用和参考以及介绍我这次学习所使用的书籍。

关于实际学习的内容

我打算一边阅读书籍,一边逐章逐章地慢慢学习。我还想借助GitHub上的源代码来学习。对于这一章的学习,可能主要是通过抄写书籍来进行的。

硬著頭皮開始

请使用以下链接获取 Kubernetes 实践指南的示例: https://github.com/kubernetes-practical-guide/examples/tree/master/ch3.5.2/manifests/mattermost

使用标签选择器来指定请求发送到的 Pod

$ kubectl create clusterip mattermost-db --tcp 3306 -o yaml --dry-run > db-service.yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: mattermost-db
  name: mattermost-db
spec:
  ports:
  - name: "3306"
    port: 3306
    protocol: TCP
    targetPort: 3306
  selector:
    run: db
  type: ClusterIP
status:
  loadBalancer: {}
$ kubectl apply -f db-service.yaml
service/mattermost-db created

确认服务和终端点

$ kubectl get svc,ep mattermost-db
NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/mattermost-db   ClusterIP   10.104.31.215   <none>        3306/TCP   57s

NAME                      ENDPOINTS         AGE
endpoints/mattermost-db   10.1.0.207:3306   57s

确认姓名解决

$ kubectl run -i --rm test2 --image=k8spracticalguide/busybox:1.28 --restart=Never -- nslookup mattermost-db
If you don't see a command prompt, try pressing enter.
Error attaching, falling back to logs:
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      mattermost-db
Address 1: 10.104.31.215 mattermost-db.default.svc.cluster.local
pod "test2" deleted

因为名字已经解决了,所以需要修正 mattermost-deploy.yaml 文件中的 DB_HOST。

        - name: DB_HOST
          value: mattermost-db # "" -> mattermost-db に修正

更新宣言书

$ kubectl apply -f mattermost-deploy.yaml
deployment.apps/mattermost configured

检查重新创建 Pod 后的日志


$ kubectl logs $(kubectl get po | grep mattermost | awk '{print $1}')
{"level":"info","ts":1587727632.3340807,"caller":"app/app.go:181","msg":"Server is initializing..."}
{"level":"info","ts":1587727632.3456247,"caller":"sqlstore/supplier.go:198","msg":"Pinging SQL master database"}

$ kubectl get po
NAME                          READY   STATUS    RESTARTS   AGE
db-58c88dc547-d4qb5           1/1     Running   0          24m
mattermost-797c548f48-8rxwn   1/1     Running   0          9m9s

下一步我们将学习第3.5.3章。

一边写经一边学习与外部应用程序的连接。

最后

我很高兴这次知道可以通过名称指定Pod,这意味着上一次的讨论对于可移植性而言达到了完美的匹配。

之前的帖子

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)Pod篇

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)NameSpace篇

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)Label篇

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)ReplicaSet篇

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)Deployment篇

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)Service篇

初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)ConfigMap篇
初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)Secret篇
初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)操作篇

初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)体验篇

初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)体验篇第二部分
初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)体验篇第三部分(Label操作)
初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)体验篇第三部分(OwnerReference操作)
初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)Manifest篇
初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)Manifest(ConfigMap)篇
初学者的Kubernetes入门(从书籍《Kubernetes实践入门》的写经中学习)通信篇

广告
将在 10 秒后关闭
bannerAds