PDF
使StategulSet1RaftKubernetesContentsApache RatisRaft ............................................................ 1使StategulSet ....................................................................................... 1使Apache RatisRaftRaftGroup raftGroup = RaftGroup.valueOf(RaftGroupId.valueOf(UUID.fromString("02511d47-d67c-49a3-9011-abb3109a44c1")), raftPeers)RaftServer server = RaftServer.newBuilder() .setGroup(raftGroup) .setProperties(properties) .setServerId(id) .setStateMachine(stateMachine) .build()使StategulSetStategulSet使使apiVersion: apps/v1kind: StatefulSetmetadata: name: webspec: serviceName: "nginx" 使StategulSet2 replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: k8s.gcr.io/nginx-slim:0.8 ports: - containerPort: 80 name: web volumeMounts: - name: www mountPath: /usr/share/nginx/html volumeClaimTemplates: - metadata: name: www spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi 17ms kubectl get statefulset powershell 80 18:02:55 NAME READY AGEweb 3/3 5d18h 1.511s kubectl get podsNAME READY STATUS RESTARTS AGEweb-0 1/1 Running 0 3d6hweb-1 1/1 Running 0 3d6hweb-2 1/1 Running 0 5d18h访 使StategulSet3使apiVersion: v1kind: Servicemetadata: name: nginx labels: app: nginxspec: ports: - port: 80 name: web clusterIP: None selector: app: nginx使{podName}.{headlessSvcName} 224ms kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.232.0.1 <none> 443/TCP 181dnginx ClusterIP None <none> 80/TCP 5d18h 0ms kubectl exec -it web-0 -- /bin/bashowershell 99 14:28:24 root@web-0:/# curl web-1.nginx<html><head><title>403 Forbidden</title></head><body bgcolor="white"><center><h1>403 Forbidden</h1></center><hr><center>nginx/1.11.1</center></body></html>root@web-0:/#RaftGroupraft: group: "02511d47-d67c-49a3-9011-abb3109a44c1" dataStoragePath: /data/ratis-data id: dw-dynamic-service-0 peers: size: 3 pattern: dw-dynamic-service-%d port: 6000 使StategulSet4Map<String, RaftConfig.PeerConfig> peers = new HashMap<>();for (int i = 0; i < clusterSize; i++) { String host = String.format(properties.getPeers().getPattern(), i); String address = String.format("%s:%d", host, properties.getPeers().getPort()); peers.put(host, new RaftConfig.PeerConfig(address));}podenv: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: RAFT_ID value: {{ printf "$(POD_NAME).%s" (include "my-service.headless-svcname" .) }}helmraft: group: {{ .Values.raft.group }} dataStoragePath: /data/ratis-data peers: size: {{ .Values.replicaCount }} pattern: {{ printf "%s-%%d.%s" (include "my-service.fullname" .) (include "my-service.headless-svcname" .) }} port: 6000

HTML view coming soon.

Download PDF for the full formatted version.