From 07cc3f2ef88ca92128575d4d237149de6704a073 Mon Sep 17 00:00:00 2001 From: KLxHunter Date: Tue, 18 Jul 2023 11:26:27 +0700 Subject: [PATCH] west saharut --- README.md | 4 +- docker-compose.yml | 48 ++++++++++++++ services1/.env | 7 +++ services1/docker-compose.yml | 103 +++++++++++++++++++++++++++++++ services1/nginx/default.conf | 64 +++++++++++++++++++ services1/output/kubeconfig.yaml | 19 ++++++ services2/.env | 7 +++ services2/docker-compose.yml | 77 +++++++++++++++++++++++ services2/nginx/default.conf | 64 +++++++++++++++++++ services3/.env | 5 ++ services3/docker-compose.yml | 51 +++++++++++++++ services3/nginx/default.conf | 59 ++++++++++++++++++ 12 files changed, 506 insertions(+), 2 deletions(-) create mode 100644 docker-compose.yml create mode 100644 services1/.env create mode 100644 services1/docker-compose.yml create mode 100644 services1/nginx/default.conf create mode 100644 services1/output/kubeconfig.yaml create mode 100644 services2/.env create mode 100644 services2/docker-compose.yml create mode 100644 services2/nginx/default.conf create mode 100644 services3/.env create mode 100644 services3/docker-compose.yml create mode 100644 services3/nginx/default.conf diff --git a/README.md b/README.md index 3ae2a98..af882f7 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# k3s +docker-compose up -d -west saharut \ No newline at end of file +docker-compose exec vm1 bash -c "docker-compose up -d" && docker-compose exec vm2 bash -c "docker-compose up -d" && docker-compose exec vm3 bash -c "docker-compose up -d" && cp services1/output/kubeconfig.yaml ~/.kube/clusters/autodoor.yaml && source ~/.zshrc \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..31dd23b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,48 @@ +version : '3' + +services: + + vm1: + image: earth4242/dockervm:3.0 + container_name: vm1 + privileged: true + stdin_open: true # docker run -i + tty: true # docker run -t + working_dir: /root/services + ports: + - 6443:6443 + networks: + k3s: + ipv4_address: 192.168.221.11 + volumes: + - ./services1:/root/services + + vm2: + image: earth4242/dockervm:3.0 + container_name: vm2 + privileged: true + stdin_open: true # docker run -i + tty: true # docker run -t + working_dir: /root/services + networks: + k3s: + ipv4_address: 192.168.221.12 + volumes: + - ./services2:/root/services + + vm3: + image: earth4242/dockervm:3.0 + container_name: vm3 + privileged: true + stdin_open: true # docker run -i + tty: true # docker run -t + working_dir: /root/services + networks: + k3s: + ipv4_address: 192.168.221.13 + volumes: + - ./services3:/root/services + +networks: + k3s: + external: true \ No newline at end of file diff --git a/services1/.env b/services1/.env new file mode 100644 index 0000000..eda25ff --- /dev/null +++ b/services1/.env @@ -0,0 +1,7 @@ +REGISTRY=192.168.221.14:5000 +K3S_VERSION=v1.26.5-k3s1 +K3S_TOKEN=vv +K3S_MASTER=192.168.221.11 +K3S_MASTER2=192.168.221.12 +RANCHER_PAUSE_IMAGE=rancher/mirrored-pause:3.6 +K3S_ETCD=192.168.221.14 \ No newline at end of file diff --git a/services1/docker-compose.yml b/services1/docker-compose.yml new file mode 100644 index 0000000..02d8027 --- /dev/null +++ b/services1/docker-compose.yml @@ -0,0 +1,103 @@ +version: '3' + +services: + + etcd-1: + container_name: etcd-1 + image: quay.io/coreos/etcd:v3.5.9 + entrypoint: /usr/local/bin/etcd + # volumes: + # - ./etcd-data:/etcd-data + command: + - '--name=etcd-1' + - '--initial-advertise-peer-urls=http://etcd-1:2380' + - '--listen-peer-urls=http://0.0.0.0:2380' + - '--listen-client-urls=http://0.0.0.0:2379' + - '--advertise-client-urls=http://0.0.0.0:2379' + - '--heartbeat-interval=250' + - '--election-timeout=1250' + - '--data-dir=/etcd-data' + - '--initial-cluster=etcd-1=http://etcd-1:2380' + ports: + - 2379:2379 + - 2380:2380 + restart: always + + master1: + image: "rancher/k3s:${K3S_VERSION:-latest}" + container_name: master1 + command: server --node-name=master1 --node-external-ip="${K3S_MASTER}" --cluster-init --advertise-address ${K3S_MASTER} --tls-san ${K3S_MASTER} --tls-san ${K3S_MASTER2} --disable-cloud-controller --disable traefik --disable metrics-server --disable servicelb --node-label "node-type=master" --node-label "node-name=master1" --node-label "k8s=egate" + # --disable coredns + tmpfs: + - /run + - /var/run + ulimits: + nproc: 65535 + nofile: + soft: 65535 + hard: 65535 + privileged: true + restart: always + environment: + - K3S_TOKEN=${K3S_TOKEN:?err} + - K3S_KUBECONFIG_OUTPUT=/output/kubeconfig.yaml + - K3S_KUBECONFIG_MODE=666 + - K3S_DATASTORE_ENDPOINT=http://${K3S_MASTER}:2379 + volumes: + - ./output:/output + # - ../registry/registries.yaml:/etc/rancher/k3s/registries.yaml + ports: + - 6443:6443 + - 80:80 # Ingress controller port 80 + - 443:443 # Ingress controller port 443 + networks: + vv: + ipv4_address: 172.25.0.34 + + worker1: + image: "rancher/k3s:${K3S_VERSION:-latest}" + container_name: worker1 + command: agent --node-name=worker1 --node-external-ip="${K3S_MASTER}" --node-label "node-type=worker" --node-label "node-name=worker1" --node-label "k8s=egate" + tmpfs: + - /run + - /var/run + ulimits: + nproc: 65535 + nofile: + soft: 65535 + hard: 65535 + privileged: true + restart: always + environment: + - K3S_URL=https://${K3S_MASTER}:6443 + - K3S_TOKEN=${K3S_TOKEN:?err} + # volumes: + # - ../registry/registries.yaml:/etc/rancher/k3s/registries.yaml + networks: + vv: + ipv4_address: 172.25.0.35 + + nginx: + image: "nginx" + container_name: nginx + restart: always + ports: + - 3001:3001 + - 3002:3002 + - 3003:3003 + - 3004:3004 + - 3005:3005 + volumes: + - ./nginx/default.conf:/etc/nginx/conf.d/default.conf + networks: + vv: + ipv4_address: 172.25.0.20 + +networks: + vv: + driver: bridge + ipam: + driver: default + config: + - subnet: 172.25.0.0/24 + gateway: 172.25.0.1 \ No newline at end of file diff --git a/services1/nginx/default.conf b/services1/nginx/default.conf new file mode 100644 index 0000000..22a9884 --- /dev/null +++ b/services1/nginx/default.conf @@ -0,0 +1,64 @@ +upstream gos { + server 172.25.0.34:30001; + server 172.25.0.35:30001; +} + +upstream goscore { + server 172.25.0.34:30002; + server 172.25.0.35:30002; +} + +upstream prebooking { + server 172.25.0.34:30003; + server 172.25.0.35:30003; +} + +upstream prebookingcore { + server 172.25.0.34:30004; + server 172.25.0.35:30004; +} + +upstream streamer { + server 172.25.0.34:30005; + server 172.25.0.35:30005; +} + +server { + listen 3001; + + location / { + proxy_pass http://gos; + } +} + +server { + listen 3002; + + location / { + proxy_pass http://goscore; + } +} + +server { + listen 3003; + + location / { + proxy_pass http://prebooking; + } +} + +server { + listen 3004; + + location / { + proxy_pass http://prebookingcore; + } +} + +server { + listen 3005; + + location / { + proxy_pass http://streamer; + } +} \ No newline at end of file diff --git a/services1/output/kubeconfig.yaml b/services1/output/kubeconfig.yaml new file mode 100644 index 0000000..8c3e32a --- /dev/null +++ b/services1/output/kubeconfig.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +clusters: +- cluster: + certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUyT0RrMk5USXhNRGd3SGhjTk1qTXdOekU0TURNME9ESTRXaGNOTXpNd056RTFNRE0wT0RJNApXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUyT0RrMk5USXhNRGd3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFRMGFMakhoNXZqcUlsU2syYk5icWVNUkljazNnUFZiSW80Zk4yVS9MVzIKcjdOcENOMHNrQ3lvb3dxdVFNalZtU3F5NU1oSkl2bG16STJPcVNJcmFkTDVvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVWNQYk91ckl2emJkZkxWK25aWVQ2CnRVV001dTR3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnZGcxQWhmT0x2UmpaMWhMQTJoRXh3Z2kvSkU4Tnh1VTgKcXJldldGc2lQcjRDSVFEM0Q2bjlmNE5BbEhRMzc5TzZtanRXWXlzcnluQkowMDNlSFBXaVZBUlhuZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + server: https://127.0.0.1:6443 + name: default +contexts: +- context: + cluster: default + user: default + name: default +current-context: default +kind: Config +preferences: {} +users: +- name: default + user: + client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrakNDQVRlZ0F3SUJBZ0lJWTVOOVpJWlhnV1l3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOamc1TmpVeU1UQTRNQjRYRFRJek1EY3hPREF6TkRneU9Gb1hEVEkwTURjeApOekF6TkRneU9Gb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJLd1pDQ2RidWFkSHhhQnQKSUp2SUdwWGMrcG5YVUx6bjZxM0MzWWtycjhVbjBkcmNmVzVjZDhhS3VFb0R6d1A4ajgrSGNyd2p5aitvS0l5ZApBekNZSzcralNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCUUxZdEhLSnFRaXdvTXNub0ErVzZ1dElWUUZUVEFLQmdncWhrak9QUVFEQWdOSkFEQkcKQWlFQS9xSFNKRDJHY2QzTHZpak5VaGdub2xibmtPN3FOSGpVY1A4ZWZIalltTVlDSVFDTWx2S0RIRmRlYmducApMdVlsbDBFdzZnVzVmb1RvWGlPRjVxekJERDVTN1E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlCZHpDQ0FSMmdBd0lCQWdJQkFEQUtCZ2dxaGtqT1BRUURBakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwClpXNTBMV05oUURFMk9EazJOVEl4TURnd0hoY05Nak13TnpFNE1ETTBPREk0V2hjTk16TXdOekUxTURNME9ESTQKV2pBak1TRXdId1lEVlFRRERCaHJNM010WTJ4cFpXNTBMV05oUURFMk9EazJOVEl4TURnd1dUQVRCZ2NxaGtqTwpQUUlCQmdncWhrak9QUU1CQndOQ0FBU3NUZldqLzVrWXI0bVhoRGdQSVNsOGQ3aGtQaHVlcDgwMEwrOUszVHBSCm4zeGlmTS90RFpER0xGS2JMRnJCR0Y3dndCYWEvS0VDSGR4cVVBZmNncm5ZbzBJd1FEQU9CZ05WSFE4QkFmOEUKQkFNQ0FxUXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QWRCZ05WSFE0RUZnUVVDMkxSeWlha0lzS0RMSjZBUGx1cgpyU0ZVQlUwd0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ082VEY4UHV2US9GeUtTNFVTemNtVXppa0JjYXovMEJHCjhWRFcxTFdHU0pzQ0lRREl4Ti85bGFJMXhUVklxeVlSa1RTS3Y4Q3NNaG5vSmZhNWhHUDJWN2tibnc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUJkTVo2cm5ZSmkzbU9wMHhNSTNwcjg1UTltcXRWNklVQVVQa2xqVjljZTJvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFckJrSUoxdTVwMGZGb0cwZ204Z2FsZHo2bWRkUXZPZnFyY0xkaVN1dnhTZlIydHg5Ymx4Mwp4b3E0U2dQUEEveVB6NGR5dkNQS1A2Z29qSjBETUpncnZ3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo= diff --git a/services2/.env b/services2/.env new file mode 100644 index 0000000..eda25ff --- /dev/null +++ b/services2/.env @@ -0,0 +1,7 @@ +REGISTRY=192.168.221.14:5000 +K3S_VERSION=v1.26.5-k3s1 +K3S_TOKEN=vv +K3S_MASTER=192.168.221.11 +K3S_MASTER2=192.168.221.12 +RANCHER_PAUSE_IMAGE=rancher/mirrored-pause:3.6 +K3S_ETCD=192.168.221.14 \ No newline at end of file diff --git a/services2/docker-compose.yml b/services2/docker-compose.yml new file mode 100644 index 0000000..cebad18 --- /dev/null +++ b/services2/docker-compose.yml @@ -0,0 +1,77 @@ +version: '3' + +services: + + master2: + image: "rancher/k3s:${K3S_VERSION:-latest}" + container_name: master2 + command: server --node-name=master2 --node-external-ip="${K3S_MASTER2}" --advertise-address ${K3S_MASTER} --tls-san ${K3S_MASTER} --tls-san ${K3S_MASTER2} --disable-cloud-controller --disable traefik --disable metrics-server --disable servicelb --node-label "node-type=master" --node-label "node-name=master2" --node-label "k8s=egate" + tmpfs: + - /run + - /var/run + ulimits: + nproc: 65535 + nofile: + soft: 65535 + hard: 65535 + privileged: true + restart: always + environment: + - K3S_URL=https://${K3S_MASTER}:6443 + - K3S_TOKEN=${K3S_TOKEN:?err} + - K3S_DATASTORE_ENDPOINT=http://${K3S_MASTER}:2379 + ports: + - 6443:6443 + # volumes: + # - ../registry/registries.yaml:/etc/rancher/k3s/registries.yaml + networks: + vv: + ipv4_address: 172.25.0.36 + + worker2: + image: "rancher/k3s:${K3S_VERSION:-latest}" + container_name: worker2 + command: agent --node-name=worker2 --node-external-ip="${K3S_MASTER2}" --node-label "node-type=worker" --node-label "node-name=worker2" --node-label "k8s=egate" + tmpfs: + - /run + - /var/run + ulimits: + nproc: 65535 + nofile: + soft: 65535 + hard: 65535 + privileged: true + restart: always + environment: + - K3S_URL=https://${K3S_MASTER}:6443 + - K3S_TOKEN=${K3S_TOKEN:?err} + # volumes: + # - ../registry/registries.yaml:/etc/rancher/k3s/registries.yaml + networks: + vv: + ipv4_address: 172.25.0.37 + + nginx: + image: "nginx" + container_name: nginx + restart: always + ports: + - 3001:3001 + - 3002:3002 + - 3003:3003 + - 3004:3004 + - 3005:3005 + volumes: + - ./nginx/default.conf:/etc/nginx/conf.d/default.conf + networks: + vv: + ipv4_address: 172.25.0.20 + +networks: + vv: + driver: bridge + ipam: + driver: default + config: + - subnet: 172.25.0.0/24 + gateway: 172.25.0.1 \ No newline at end of file diff --git a/services2/nginx/default.conf b/services2/nginx/default.conf new file mode 100644 index 0000000..cd723b5 --- /dev/null +++ b/services2/nginx/default.conf @@ -0,0 +1,64 @@ +upstream gos { + server 172.25.0.36:30001; + server 172.25.0.37:30001; +} + +upstream goscore { + server 172.25.0.36:30002; + server 172.25.0.37:30002; +} + +upstream prebooking { + server 172.25.0.36:30003; + server 172.25.0.37:30003; +} + +upstream prebookingcore { + server 172.25.0.36:30004; + server 172.25.0.37:30004; +} + +upstream streamer { + server 172.25.0.36:30005; + server 172.25.0.37:30005; +} + +server { + listen 3001; + + location / { + proxy_pass http://gos; + } +} + +server { + listen 3002; + + location / { + proxy_pass http://goscore; + } +} + +server { + listen 3003; + + location / { + proxy_pass http://prebooking; + } +} + +server { + listen 3004; + + location / { + proxy_pass http://prebookingcore; + } +} + +server { + listen 3005; + + location / { + proxy_pass http://streamer; + } +} \ No newline at end of file diff --git a/services3/.env b/services3/.env new file mode 100644 index 0000000..f8d8638 --- /dev/null +++ b/services3/.env @@ -0,0 +1,5 @@ +REGISTRY=192.168.221.14:5000 +K3S_VERSION=v1.26.5-k3s1 +K3S_TOKEN=vv +K3S_MASTER=192.168.221.12 +K3S_WORKER=192.168.221.13 \ No newline at end of file diff --git a/services3/docker-compose.yml b/services3/docker-compose.yml new file mode 100644 index 0000000..da8cd8b --- /dev/null +++ b/services3/docker-compose.yml @@ -0,0 +1,51 @@ +version: '3' + +services: + + worker3: + image: "rancher/k3s:${K3S_VERSION:-latest}" + container_name: worker3 + command: agent --node-name=worker3 --node-external-ip ${K3S_WORKER} --node-label "node-type=worker" --node-label "node-name=worker3" --node-label "k8s=egate" + tmpfs: + - /run + - /var/run + ulimits: + nproc: 65535 + nofile: + soft: 65535 + hard: 65535 + privileged: true + restart: always + environment: + - K3S_URL=https://${K3S_MASTER}:6443 + - K3S_TOKEN=${K3S_TOKEN:?err} + # volumes: + # - ../registry/registries.yaml:/etc/rancher/k3s/registries.yaml + networks: + vv: + ipv4_address: 172.25.0.38 + + nginx: + image: "nginx" + container_name: nginx + restart: always + ports: + - 3001:3001 + - 3002:3002 + - 3003:3003 + - 3004:3004 + - 3005:3005 + volumes: + - ./nginx/default.conf:/etc/nginx/conf.d/default.conf + networks: + vv: + ipv4_address: 172.25.0.20 + +networks: + vv: + driver: bridge + ipam: + driver: default + config: + - subnet: 172.25.0.0/24 + gateway: 172.25.0.1 \ No newline at end of file diff --git a/services3/nginx/default.conf b/services3/nginx/default.conf new file mode 100644 index 0000000..cc9cacd --- /dev/null +++ b/services3/nginx/default.conf @@ -0,0 +1,59 @@ +upstream gos { + server 172.25.0.38:30001; +} + +upstream goscore { + server 172.25.0.38:30002; +} + +upstream prebooking { + server 172.25.0.38:30003; +} + +upstream prebookingcore { + server 172.25.0.38:30004; +} + +upstream streamer { + server 172.25.0.38:30005; +} + +server { + listen 3001; + + location / { + proxy_pass http://gos; + } +} + +server { + listen 3002; + + location / { + proxy_pass http://goscore; + } +} + +server { + listen 3003; + + location / { + proxy_pass http://prebooking; + } +} + +server { + listen 3004; + + location / { + proxy_pass http://prebookingcore; + } +} + +server { + listen 3005; + + location / { + proxy_pass http://streamer; + } +} \ No newline at end of file