Với một bộ bản sao duy nhất, ứng dụng đang hoạt động.
Vì vậy, tôi đã thay đổi replicaset thành 3.
Sau đó, hai bản sao khác của nhóm không bắt đầu.:
kubectl lấy nhóm
customservice-c8645cd6-7gghm 0/3 Ban đầu: CrashLoopBackOff 8 17m
customservice-c8645cd6-f5nbn 3/3 Chạy 0 6h50m
customservice-c8645cd6-fh57n 0/3 Ban đầu: CrashLoopBackOff 8 17m
kubectl description pod customservice-c8645cd6-fh57n
Tên: dịch vụ tùy chỉnh-c8645cd6-7gghm
Không gian tên: mặc định
Ưu tiên: 0
Nút: ip-192-168-93-234.us-west-2.compute.internal/192.168.93.234
Thời gian bắt đầu: Thứ ba, ngày 20 tháng 7 năm 2021 19:34:48 +0530
Nhãn: ứng dụng=dịch vụ tùy chỉnh
consul.hashicorp.com/connect-inject-status=injected
pod-template-hash=c8645cd6
dịch vụ = dịch vụ tùy chỉnh
Chú thích: consul.hashicorp.com/connect-inject: true
consul.hashicorp.com/connect-inject-status: đã tiêm
consul.hashicorp.com/connect-service: dịch vụ tùy chỉnh
consul.hashicorp.com/connect-service-port: 18170
consul.hashicorp.com/connect-service-upstreams: bảng điều khiển:9002
kubernetes.io/psp: eks.privileged
prometheus.io/path: /metrics
prometheus.io/port: 20200
prometheus.io/scrape: đúng
Tình trạng: Đang chờ
IP: 192.168.93.88
IP:
IP: 192.168.93.88
Được kiểm soát bởi: ReplicaSet/customservice-c8645cd6
Bộ chứa ban đầu:
lãnh sự-kết nối-tiêm-init:
ID vùng chứa: docker://a9bf6bb490f5c21637c18aff681d49d53692f09a3333bf34adb2080816953e26
Ảnh: hashicorp/consul:1.9.7
ID hình ảnh: docker-pullable://hashicorp/consul@sha256:37c7a001af46a68f8e3513bd8180e7f84133d428b0e4ce5cf385d3e54f894760
Cổng: <không có>
Cổng máy chủ: <none>
Chỉ huy:
/bin/sh
-ec
xuất CONSUL_HTTP_ADDR="${HOST_IP}:8500"
xuất CONSUL_GRPC_ADDR="${HOST_IP}:8502"
# Đăng ký dịch vụ. HCL được lưu trữ trong khối lượng để
# hook preStop có thể truy cập nó để hủy đăng ký dịch vụ.
con mèo <<EOF >/consul/connect-inject/service.hcl
dịch vụ {
id = "${SERVICE_ID}"
tên = "dịch vụ tùy chỉnh"
địa chỉ = "${POD_IP}"
cổng = 18170
siêu nhân = {
tên nhóm = "${POD_NAME}"
k8s-namespace = "${POD_NAMESPACE}"
}
}
dịch vụ {
id = "${PROXY_SERVICE_ID}"
tên = "customservice-sidecar-proxy"
loại = "kết nối-proxy"
địa chỉ = "${POD_IP}"
cổng = 20000
siêu nhân = {
tên nhóm = "${POD_NAME}"
k8s-namespace = "${POD_NAMESPACE}"
}
Ủy quyền {
cấu hình {
đặc phái viên_prometheus_bind_addr = "0.0.0.0:20200"
}
Destination_service_name = "dịch vụ tùy chỉnh"
Destination_service_id = "${SERVICE_ID}"
local_service_address = "127.0.0.1"
local_service_port = 18170
ngược dòng {
đích_type = "dịch vụ"
Destination_name = "bảng điều khiển"
local_bind_port = 9002
}
}
Séc {
name = "Người nghe công khai proxy"
tcp = "${POD_IP}:20000"
khoảng thời gian = "10s"
deregister_critical_service_after = "10 phút"
}
Séc {
name = "Bí danh đích"
alias_service = "${SERVICE_ID}"
}
}
EOF
/bin/đăng ký dịch vụ lãnh sự \
/consul/connect-inject/service.hcl
# Tạo mã bootstrap của phái viên
/bin/lãnh sự kết nối phái viên \
-proxy-id="${PROXY_SERVICE_ID}" \
-prometheus-scrape-path="/metrics" \
-prometheus-backend-port="20100" \
-bootstrap > /consul/connect-inject/envoy-bootstrap.yaml
# Sao chép nhị phân Lãnh sự
cp /bin/lãnh sự /lãnh sự/kết nối-tiêm/lãnh sự
Trạng thái: Chờ đợi
Lý do: CrashLoopBackOff
Trạng thái cuối cùng: Đã chấm dứt
Lý do: Lỗi
Mã thoát: 1
Bắt đầu: Thứ ba, ngày 20 tháng 7 năm 2021 19:51:19 +0530
Kết thúc: Thứ ba, ngày 20 tháng 7 năm 2021 19:51:23 +0530
Sẵn sàng: Sai
Số lần khởi động lại: 8
Hạn mức:
CPU: 50m
bộ nhớ: 150Mi
yêu cầu:
CPU: 50m
bộ nhớ: 25Mi
Môi trường:
HOST_IP: (v1:status.hostIP)
POD_IP: (v1:status.podIP)
POD_NAME: customservice-c8645cd6-7gghm (v1:metadata.name)
POD_NAMESPACE: mặc định (v1:metadata.namespace)
SERVICE_ID: $(POD_NAME)-dịch vụ tùy chỉnh
PROXY_SERVICE_ID: $(POD_NAME)-customservice-sidecar-proxy
gắn kết:
/consul/connect-inject từ consul-connect-inject-data (rw)
/var/run/secrets/kubernetes.io/serviceaccount từ customservice-token-4xf6t (ro)
Hộp đựng:
dịch vụ khách hàng:
Mã vùng chứa:
Hình ảnh: customserverlinux.azurecr.io/custom:latest
Mã hình ảnh:
Cổng: 18170/TCP
Cổng máy chủ: 0/TCP
Trạng thái: Chờ đợi
Lý do: PodInitializing
Sẵn sàng: Sai
Số lần khởi động lại: 0
Môi trường:
DASHBOARD_CONNECT_SERVICE_HOST: 127.0.0.1
DASHBOARD_CONNECT_SERVICE_PORT: 9002
gắn kết:
/home/spring/AppData/Local/erwin/custom Server/ từ custom-volume (rw)
/var/run/secrets/kubernetes.io/serviceaccount từ customservice-token-4xf6t (ro)
phái viên-sidecar:
Mã vùng chứa:
Hình ảnh: envoyproxy/envoy-alpine:v1.16.0
Mã hình ảnh:
Cổng: <không có>
Cổng máy chủ: <none>
Chỉ huy:
phái viên
--config-path
/consul/connect-inject/envoy-bootstrap.yaml
-l
gỡ lỗi
Trạng thái: Chờ đợi
Lý do: PodInitializing
Sẵn sàng: Sai
Số lần khởi động lại: 0
Môi trường:
HOST_IP: (v1:status.hostIP)
CONSUL_HTTP_ADDR: $(HOST_IP):8500
gắn kết:
/consul/connect-inject từ consul-connect-inject-data (rw)
/var/run/secrets/kubernetes.io/serviceaccount từ customservice-token-4xf6t (ro)
lãnh sự-sidecar:
Mã vùng chứa:
Hình ảnh: hashicorp/consul-k8s:0.25.0
Mã hình ảnh:
Cổng: <không có>
Cổng máy chủ: <none>
Chỉ huy:
lãnh sự-k8s
lãnh sự-sidecar
-service-config
/consul/connect-inject/service.hcl
-consul-nhị phân
/lãnh sự/kết nối-tiêm/lãnh sự
-enable-metrics-merge=true
-merged-metrics-port=20100
-service-metrics-port=18170
-service-metrics-path=/metrics
Trạng thái: Chờ đợi
Lý do: PodInitializing
Sẵn sàng: Sai
Số lần khởi động lại: 0
Hạn mức:
bộ vi xử lý: 20m
bộ nhớ: 50Mi
yêu cầu:
bộ vi xử lý: 20m
bộ nhớ: 25Mi
Môi trường:
HOST_IP: (v1:status.hostIP)
CONSUL_HTTP_ADDR: $(HOST_IP):8500
gắn kết:
/consul/connect-inject từ consul-connect-inject-data (rw)
/var/run/secrets/kubernetes.io/serviceaccount từ customservice-token-4xf6t (ro)
Điều kiện:
Loại Trạng thái
Khởi tạo sai
Sẵn sàng Sai
ContainerSẵn sàng Sai
PodScheduled True
tập:
khối lượng tùy chỉnh:
Loại: EmptyDir (một thư mục tạm thời chia sẻ thời gian tồn tại của nhóm)
Trung bình:
SizeLimit: <bỏ đặt>
dịch vụ tùy chỉnh-token-4xf6t:
Loại: Bí mật (một tập được điền bởi một Bí mật)
SecretName: customservice-token-4xf6t
Tùy chọn: sai
lãnh sự-kết nối-tiêm-dữ liệu:
Loại: EmptyDir (một thư mục tạm thời chia sẻ thời gian tồn tại của nhóm)
Trung bình:
SizeLimit: <bỏ đặt>
Lớp QoS: Ổn định
Bộ chọn nút: <none>
Dung sai: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Tồn tại trong 300 giây
Sự kiện:
Nhập Lý do Tuổi từ Tin nhắn
---- ------ ---- ---- -------
Bình thường Đã lên lịch Trình lập lịch mặc định 19 phút Đã gán thành công mặc định/customservice-c8645cd6-7gghm cho ip-192-168-93-234.us-west-2.compute.internal
Kéo bình thường 17m (x5 trên 19m) kubelet Container image "hashicorp/consul:1.9.7" đã có trên máy
Bình thường Đã tạo 17m (x5 trên 19m) kubelet Đã tạo vùng chứa consul-connect-inject-init
Bắt đầu bình thường 17m (x5 trên 19m) kubelet Bắt đầu container consul-connect-inject-init
Cảnh báo BackOff 3m50s (x68 trên 18m) kubelet Back-off khởi động lại container không thành công
Khi bộ chứa init bị lỗi, hãy ghi nhật ký cho bộ chứa đó:
nhật ký kubectl customservice-c8645cd6-64j2j -c consul-connect-inject-init
Dịch vụ đã đăng ký: dịch vụ tùy chỉnh
Dịch vụ đã đăng ký: customservice-sidecar-proxy
cờ được cung cấp nhưng không được xác định: -prometheus-scrape-path
Cách sử dụng:
-giá trị địa chỉ
Địa chỉ LAN để quảng cáo trong đăng ký dịch vụ cổng
-admin-truy cập-log-đường dẫn
Đường dẫn ghi nhật ký truy cập máy chủ quản trị. Nếu không muốn có nhật ký truy cập, hãy chỉ định "/dev/null". Theo mặc định, nó sẽ sử dụng "/dev/null". (mặc định "/dev/null")
-admin-liên kết chuỗi
Địa chỉ:cổng để khởi động máy chủ quản trị của phái viên. Envoy yêu cầu điều này nhưng phải cẩn thận để đảm bảo rằng nó không tiếp xúc với một mạng không đáng tin cậy vì nó có toàn quyền kiểm soát các bí mật và cấu hình của proxy. (mặc định "localhost:19000")
-bind-address <name>=<ip>:<port>
Liên kết địa chỉ để sử dụng thay vì các quy tắc liên kết mặc định được cung cấp dưới dạng các cặp <name>=<ip>:<port>. Cờ này có thể được chỉ định nhiều lần để thêm nhiều địa chỉ liên kết.
-bootstrap
Tạo bootstrap.json nhưng không thực hiện sứ mệnh
-ca-giá trị tệp
Đường dẫn đến tệp CA để sử dụng cho TLS khi giao tiếp với Lãnh sự. Điều này cũng có thể được chỉ định thông qua biến môi trường CONSUL_CACERT.
-ca-giá trị đường dẫn
Đường dẫn đến thư mục chứng chỉ CA để sử dụng cho TLS khi giao tiếp với Lãnh sự. Điều này cũng có thể được chỉ định thông qua biến môi trường CONSUL_CAPATH.
-client-cert giá trị
Đường dẫn đến tệp chứng chỉ ứng dụng khách để sử dụng cho TLS khi 'verify_incoming' được bật. Điều này cũng có thể được chỉ định thông qua biến môi trường CONSUL_CLIENT_CERT.
-client-key giá trị
Đường dẫn đến tệp khóa máy khách để sử dụng cho TLS khi 'verify_incoming' được bật. Điều này cũng có thể được chỉ định thông qua biến môi trường CONSUL_CLIENT_KEY.
-deregister-after-critical string
Lượng thời gian kiểm tra tình trạng dịch vụ cổng có thể không thành công trước khi bị hủy đăng ký ("6h" mặc định)
-envoy-chuỗi nhị phân
Đường dẫn đầy đủ đến nhị phân phái viên để chạy. Theo mặc định sẽ chỉ tìm kiếm $PATH. Bỏ qua nếu -bootstrap được sử dụng.
-envoy-phiên bản chuỗi
Đặt phiên bản đặc phái viên mà nhị phân đặc phái viên có. (mặc định "1.16.4")
-expose-máy chủ
Hiển thị các máy chủ để liên kết mạng WAN qua cổng lưới này
-chuỗi cổng
Loại cổng để đăng ký. Một trong số: kết thúc, xâm nhập hoặc lưới
-grpc-addr chuỗi
Đặt cổng và địa chỉ gRPC của tác nhân (ở định dạng http(s)://host:port). Ngoài ra, bạn có thể chỉ định CONSUL_GRPC_ADDR trong ENV. (mặc định "192.168.93.234:8502")
địa chỉ -http-addr
Địa chỉ và cổng của tác nhân HTTP Consul. Giá trị có thể là địa chỉ IP hoặc địa chỉ DNS, nhưng nó cũng phải bao gồm cổng. Điều này cũng có thể được chỉ định thông qua biến môi trường CONSUL_HTTP_ADDR. Giá trị mặc định là http://127.0.0.1:8500. Lược đồ cũng có thể được đặt thành HTTPS bằng cách đặt biến môi trường CONSUL_HTTP_SSL=true.
-mesh-gateway
Định cấu hình Envoy làm Cổng lưới.
-không gian tên mặc định
Chỉ định không gian tên để truy vấn. Nếu không được cung cấp, không gian tên sẽ được suy ra từ mã thông báo ACL của yêu cầu hoặc sẽ mặc định thành không gian tên mặc định. Không gian tên là một tính năng của Consul Enterprise.
-no-trung tâm-config
Theo mặc định, cấu hình bootstrap của proxy có thể được tùy chỉnh tập trung.Điều này yêu cầu lệnh chạy trên cùng một tác nhân như proxy sẽ làm và tác nhân đó có thể truy cập được khi lệnh được chạy. Trong trường hợp một trong hai giả định bị vi phạm, cờ này sẽ ngăn lệnh cố gắng giải quyết cấu hình từ tác nhân cục bộ.
-omit-không dùng nữa-thẻ
Trong Consul 1.9.0, định dạng của thẻ số liệu cho cụm Envoy đã được cập nhật từ consul.[service|dc|...] thành consul.destination.[service|dc|...]. Các thẻ cũ được giữ nguyên để tương thích ngược, nhưng có thể bị vô hiệu hóa bằng cờ này.
-proxy-id chuỗi
ID của proxy trên tác nhân cục bộ.
-Đăng ký
Đăng ký dịch vụ cổng mới trước khi định cấu hình và khởi động Envoy
-chuỗi dịch vụ
Tên dịch vụ để sử dụng cho việc đăng ký
-sidecar-cho chuỗi
ID của phiên bản dịch vụ trên tác nhân cục bộ mà proxy này sẽ trở thành phương tiện hỗ trợ. Nó yêu cầu dịch vụ proxy được đăng ký với tác nhân dưới dạng proxy kết nối với Proxy.DestinationServiceID được đặt thành giá trị này. Nếu có nhiều hơn một proxy như vậy được đăng ký, nó sẽ bị lỗi.
-tls-giá trị tên máy chủ
Tên máy chủ sẽ sử dụng làm máy chủ SNI khi kết nối qua TLS. Điều này cũng có thể được chỉ định thông qua biến môi trường CONSUL_TLS_SERVER_NAME.
-giá trị mã thông báo
Mã thông báo ACL để sử dụng trong yêu cầu. Điều này cũng có thể được chỉ định thông qua biến môi trường CONSUL_HTTP_TOKEN. Nếu không được chỉ định, truy vấn sẽ mặc định là mã thông báo của tác nhân Lãnh sự tại địa chỉ HTTP.
-token-giá trị tập tin
Tệp chứa mã thông báo ACL để sử dụng trong yêu cầu thay vì mã được chỉ định thông qua đối số -token hoặc biến môi trường CONSUL_HTTP_TOKEN. Điều này cũng có thể được chỉ định thông qua biến môi trường CONSUL_HTTP_TOKEN_FILE.
-wan-giá trị địa chỉ
Địa chỉ WAN để quảng cáo trong đăng ký dịch vụ cổng. Đối với cổng vào, chỉ cần một địa chỉ IP (không có cổng).
Bất kỳ đề nghị về làm thế nào để khắc phục điều này?