成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Kubernetes stateful set講解以及一個(gè)基于postgreSQL的具體例子

Forest10 / 3468人閱讀

摘要:是版本新引入的一個(gè)概念,用于管理有狀態(tài)的應(yīng)用。使用查看創(chuàng)建的明細(xì)自動(dòng)創(chuàng)建的使用下面的命令登錄到提供的服務(wù)器上看到之后,說(shuō)明我們已經(jīng)連接上了。

Stateful Set是Kubernetes 1.9版本新引入的一個(gè)概念,用于管理有狀態(tài)的應(yīng)用。

Kubernetes官方文檔:

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

Manages the deployment and scaling of a set of Pods, and provides guarantees about the ordering and uniqueness of these Pods.

Like a Deployment, a StatefulSet manages Pods that are based on an identical container spec. Unlike a Deployment, a StatefulSet maintains a sticky identity for each of their Pods. These pods are created from the same spec, but are not interchangeable: each has a persistent identifier that it maintains across any rescheduling.

StatefulSet由以下幾個(gè)部分組成:

1. 用于定義網(wǎng)絡(luò)標(biāo)志(DNS domain)的Headless Service

2. 用于創(chuàng)建PersistentVolumes的volumeClaimTemplates

3. 定義具體應(yīng)用的StatefulSet

下面我給出了一個(gè)實(shí)際應(yīng)用中的StatefulSet的yaml文件:

---

apiVersion: apps/v1

kind: StatefulSet

metadata:

name: ads-db-statefulset

labels:

component: ads

module: db

spec:

serviceName: ads-db-service

replicas: 1

selector:

matchLabels:

component: ads

module: db

template:

metadata:

labels:

component: ads

module: db

spec:

volumes:

- name: init

secret:

secretName: ads-db-secret

items:

- key: initdb.sql

path: initdb.sql

containers:

- name: ads-db-pod

image: postgres:9.6

ports:

- containerPort: 5432

name: ads-db-port

volumeMounts:

- name: ads-db-volume

mountPath: /var/lib/postgresql/data/

- name: init

mountPath: /docker-entrypoint-initdb.d/

env:

- name: PGDATA

valueFrom:

configMapKeyRef:

name: ads-db-configmap

key: pgdata_value

- name: POSTGRES_PASSWORD

valueFrom:

secretKeyRef:

name: ads-db-secret

key: postgres_password_value

volumeClaimTemplates:

- metadata:

name: ads-db-volume

labels:

component: ads

module: db

spec:

accessModes: [ "ReadWriteOnce" ]

resources:

requests:

storage: 1Gi

使用kubectl get statefulset查看生成的statefulset:

生成的headless service:

生成的pod:

當(dāng)我把statefulset yaml文件里的replicas從1改成3之后,果然觀(guān)察到有兩個(gè)新的pod正在啟動(dòng),并且名稱(chēng)滿(mǎn)足命名規(guī)范-X。

使用kubectl describe查看創(chuàng)建的statefulset明細(xì):

statefulSet自動(dòng)創(chuàng)建的persistentVolumeClaim:

The files belonging to this database system will be owned by user "postgres".

This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".

The default database encoding has accordingly been set to "UTF8".

The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data/pgdata ... ok

creating subdirectories ... ok

selecting default max_connections ... 100

selecting default shared_buffers ... 128MB

selecting dynamic shared memory implementation ... posix

creating configuration files ... ok

running bootstrap script ... ok

performing post-bootstrap initialization ... ok

syncing data to disk ... ok

Success. You can now start the database server using:

pg_ctl -D /var/lib/postgresql/data/pgdata -l logfile start

使用下面的命令登錄到statefulset提供的postgreSQL服務(wù)器上:

1. kubectl run tester -it --rm --image=postgres:9.6 --env="PGCONNECT_TIMEOUT=5" --command -- bash

看到root$之后,說(shuō)明我們已經(jīng)連接上pod了。

使用如下命令行連接postgreSQL服務(wù)器:

psql -h ads-db-statefulset-0.ads-db-service -p 5432 -U adsuser -W ads

當(dāng)然如果不用命令行,也可以使用pgadmin,以圖形化界面連接statefulSet里的postgreSQL服務(wù)器:

sudo apt install pgadmin3

進(jìn)行端口轉(zhuǎn)發(fā),這樣我們可以使用localhost:5432進(jìn)行連接:

kubectl port-forward ads-db-statefulset-0 5432:5432

也能成功連接:

要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39014.html

相關(guān)文章

  • Kubernetes stateful set講解以及一個(gè)基于postgreSQL具體例子

    摘要:是版本新引入的一個(gè)概念,用于管理有狀態(tài)的應(yīng)用。使用查看創(chuàng)建的明細(xì)自動(dòng)創(chuàng)建的使用下面的命令登錄到提供的服務(wù)器上看到之后,說(shuō)明我們已經(jīng)連接上了。 Stateful Set是Kubernetes 1.9版本新引入的一個(gè)概念,用于管理有狀態(tài)的應(yīng)用。 Kubernetes官方文檔: https://kubernetes.io/docs/concepts/workloads/controllers...

    lavnFan 評(píng)論0 收藏0
  • Kubernetes stateful set講解以及一個(gè)基于postgreSQL具體例子

    摘要:是版本新引入的一個(gè)概念,用于管理有狀態(tài)的應(yīng)用。使用查看創(chuàng)建的明細(xì)自動(dòng)創(chuàng)建的使用下面的命令登錄到提供的服務(wù)器上看到之后,說(shuō)明我們已經(jīng)連接上了。 Stateful Set是Kubernetes 1.9版本新引入的一個(gè)概念,用于管理有狀態(tài)的應(yīng)用。 Kubernetes官方文檔: https://kubernetes.io/docs/concepts/workloads/controllers...

    paraller 評(píng)論0 收藏0
  • SpringBoot應(yīng)用和PostgreSQL數(shù)據(jù)庫(kù)部署到Kubernetes一個(gè)例子

    摘要:集群外部的請(qǐng)求需要通過(guò)負(fù)載均衡轉(zhuǎn)發(fā)到在上暴露的上,然后再由將其轉(zhuǎn)發(fā)給相關(guān)的。作為里的標(biāo)準(zhǔn)對(duì)象之一,負(fù)責(zé)給提供集群外部訪(fǎng)問(wèn)的負(fù)載均衡終止路由等。進(jìn)入對(duì)應(yīng)的,可以查看到應(yīng)用對(duì)應(yīng)的文件和環(huán)境。 創(chuàng)建一個(gè)名為ads-app-service的服務(wù): showImg(https://segmentfault.com/img/remote/1460000017117734); 上述Service的y...

    warmcheng 評(píng)論0 收藏0
  • SpringBoot應(yīng)用和PostgreSQL數(shù)據(jù)庫(kù)部署到Kubernetes一個(gè)例子

    摘要:集群外部的請(qǐng)求需要通過(guò)負(fù)載均衡轉(zhuǎn)發(fā)到在上暴露的上,然后再由將其轉(zhuǎn)發(fā)給相關(guān)的。作為里的標(biāo)準(zhǔn)對(duì)象之一,負(fù)責(zé)給提供集群外部訪(fǎng)問(wèn)的負(fù)載均衡終止路由等。進(jìn)入對(duì)應(yīng)的,可以查看到應(yīng)用對(duì)應(yīng)的文件和環(huán)境。 創(chuàng)建一個(gè)名為ads-app-service的服務(wù): showImg(https://segmentfault.com/img/remote/1460000017117734); 上述Service的y...

    nifhlheimr 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<