Consul
约 1 分钟阅读
- Consul K8SGitHubhashicorp/consul-k8shashicorp/consul-k8s · consul-k8s-control-plane · CRD · 服务同步/catalog sync · service mesh/inject envoy sidecar/connect · CRD - consul.hashicorp.com/v1alpha1笔记:Consul K8S 使用场景
- 部署 Consul 集群服务
- 允许 Consol 客户端打通服务
- Connect Service Mesh
- 同步 K8S 服务到 Consul
- 安装依赖 PV 存储
- 文档链接www.consul.io/docs/k8sConsul K8S 使用场景 · 部署 Consul 集群服务 · 允许 Consol 客户端打通服务 · Connect Service Mesh · 同步 K8S 服务到 Consul · 安装依赖 PV 存储 · 文档 · Kubernetes Auth Method笔记:Consul
helm repo add hashicorp https://helm.releases.hashicorp.com
# 默认部署 server client dns ui
# 默认不部署 tls acl federation externalService snapshotAgent syncCatalog
# connectInject centralConfig meshGateway ingressGateways terminatingGateways
# 默认 datacenter 为 dc1
# 安装到 service 空间
# --set server.affinity=null 允许安装到单机
# server.storageClass 修改存储类型
helm install consul hashicorp/consul \
-n consul --create-namespace \
--set global.name=consul --set global.datacenter=center
# 转发 UI
# 默认没有 tls 和 acl
kubectl port-forward -n consul svc/consul-server 8500:8500
# 如果启用了 ACL
kubectl get -n consul secrets/consul-bootstrap-acl-token --template={{.data.token}} | base64 -d
# 访问 consul
# 每个节点都有 agent 因此直接使用 HOST_IP 即可
export CONSUL_HTTP_ADDR="${HOST_IP}:8500"
consul kv put hello worldenv:
- name: ADVERTISE_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NODE
valueFrom:
fieldRef:
fieldPath: status.nodeName
- name: HOST_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: CONSUL_HTTP_ADDR
value: $(HOST_IP):8500DNS
# KubeDNS
# ==========
CONSUL_DNS_IP=$(kubectl get svc consul-dns -o jsonpath='{.spec.clusterIP}' -n service)
cat << EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
labels:
addonmanager.kubernetes.io/mode: EnsureExists
name: kube-dns
namespace: kube-system
data:
stubDomains: |
{"consul": ["$CONSUL_DNS_IP"]}
EOF
kubectl get configmap kube-dns -n kube-system -o yaml
# CoreDNS
# ==========
kubectl edit configmap coredns -n kube-system
# Corefile: |
# consul {
# errors
# cache 30
# forward . <consul-dns-service-cluster-ip>
# }
# 测试解析
kubectl run --rm -i -t dns-test --image=wener/base --restart=Never -- nslookup consul.service.consulACL
- Kubernetes Auth Method链接www.consul.io/docs/security/acl/auth-methods/kubernetesConsul K8S 使用场景 · 部署 Consul 集群服务 · 允许 Consol 客户端打通服务 · Connect Service Mesh · 同步 K8S 服务到 Consul · 安装依赖 PV 存储 · 文档 · Kubernetes Auth Method笔记:Consul
关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
GitHub1 条
- hashicorp/consul-k8sgithub.com/hashicorp/consul-k8s
其他外链2 条
- www.consul.io/docs/k8swww.consul.io/docs/k8s
- www.consul.io/docs/security/acl/auth-methods/kuberneteswww.consul.io/docs/security/acl/auth-methods/kubernetes