摘要:是版本新引入的一個概念,用于管理有狀態的應用。使用查看創建的明細自動創建的使用下面的命令登錄到提供的服務器上看到之后,說明我們已經連接上了。
Stateful Set是Kubernetes 1.9版本新引入的一個概念,用于管理有狀態的應用。
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由以下幾個部分組成:
1. 用于定義網絡標志(DNS domain)的Headless Service
2. 用于創建PersistentVolumes的volumeClaimTemplates
3. 定義具體應用的StatefulSet
下面我給出了一個實際應用中的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:
當我把statefulset yaml文件里的replicas從1改成3之后,果然觀察到有兩個新的pod正在啟動,并且名稱滿足命名規范
使用kubectl describe查看創建的statefulset明細:
statefulSet自動創建的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服務器上:
1. kubectl run tester -it --rm --image=postgres:9.6 --env="PGCONNECT_TIMEOUT=5" --command -- bash
看到root$之后,說明我們已經連接上pod了。
使用如下命令行連接postgreSQL服務器:
psql -h ads-db-statefulset-0.ads-db-service -p 5432 -U adsuser -W ads
當然如果不用命令行,也可以使用pgadmin,以圖形化界面連接statefulSet里的postgreSQL服務器:
sudo apt install pgadmin3
進行端口轉發,這樣我們可以使用localhost:5432進行連接:
kubectl port-forward ads-db-statefulset-0 5432:5432
也能成功連接:
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39014.html
摘要:是版本新引入的一個概念,用于管理有狀態的應用。使用查看創建的明細自動創建的使用下面的命令登錄到提供的服務器上看到之后,說明我們已經連接上了。 Stateful Set是Kubernetes 1.9版本新引入的一個概念,用于管理有狀態的應用。 Kubernetes官方文檔: https://kubernetes.io/docs/concepts/workloads/controllers...
摘要:是版本新引入的一個概念,用于管理有狀態的應用。使用查看創建的明細自動創建的使用下面的命令登錄到提供的服務器上看到之后,說明我們已經連接上了。 Stateful Set是Kubernetes 1.9版本新引入的一個概念,用于管理有狀態的應用。 Kubernetes官方文檔: https://kubernetes.io/docs/concepts/workloads/controllers...
摘要:集群外部的請求需要通過負載均衡轉發到在上暴露的上,然后再由將其轉發給相關的。作為里的標準對象之一,負責給提供集群外部訪問的負載均衡終止路由等。進入對應的,可以查看到應用對應的文件和環境。 創建一個名為ads-app-service的服務: showImg(https://segmentfault.com/img/remote/1460000017117734); 上述Service的y...
摘要:集群外部的請求需要通過負載均衡轉發到在上暴露的上,然后再由將其轉發給相關的。作為里的標準對象之一,負責給提供集群外部訪問的負載均衡終止路由等。進入對應的,可以查看到應用對應的文件和環境。 創建一個名為ads-app-service的服務: showImg(https://segmentfault.com/img/remote/1460000017117734); 上述Service的y...
閱讀 1649·2019-08-30 15:44
閱讀 2571·2019-08-30 11:19
閱讀 404·2019-08-30 11:06
閱讀 1566·2019-08-29 15:27
閱讀 3083·2019-08-29 13:44
閱讀 1629·2019-08-28 18:28
閱讀 2357·2019-08-28 18:17
閱讀 1987·2019-08-26 10:41