Kubernetes扩展插件 Cluster DNS安装
回到master机器 10.99.0.10
skydns配置文件所在目录(本例子使用getting-started-guides目录下的文件)
[root@vultr ~]# find -name *skydns*
./kubernetes/cluster/libvirt-coreos/skydns-rc.yaml
./kubernetes/cluster/libvirt-coreos/skydns-svc.yaml
./kubernetes/cluster/gce/coreos/kube-manifests/addons/dns/skydns-rc.yaml
./kubernetes/cluster/gce/coreos/kube-manifests/addons/dns/skydns-svc.yaml
./kubernetes/cluster/juju/layers/kubernetes/templates/skydns-rc.yml
./kubernetes/cluster/juju/layers/kubernetes/templates/skydns-svc.yml
./kubernetes/docs/getting-started-guides/coreos/azure/addons/skydns-rc.yaml
./kubernetes/docs/getting-started-guides/coreos/azure/addons/skydns-svc.yaml
创建一个工作目录
cd ~/kubernetes/docs/getting-started-guides/coreos/azure/addons/
mkdir -p ~/workspace/skydns
cp skydns-* ~/workspace/skydns/
cd ~/workspace/skydns
ls -l
修改skydns-rc.yaml 和 skydns-svc.yaml
sed -i "s/replicas: 3/replicas: 1/" skydns-rc.yaml
sed -i "s/kube.local/cluster.local/" skydns-rc.yaml
sed -i "s/kube-00/10.99.0.10/" skydns-rc.yaml
sed -i "s/localhost/127.0.0.1/" skydns-rc.yaml
sed -i "s/kube.local/cluster.local./" skydns-rc.yaml
sed -i "s/kubernetes.default.svc.kube.local/kubernetes.default.svc.cluster.local/" skydns-rc.yaml
sed -i "s/10.16.0.3/172.16.66.66/" skydns-svc.yaml
创建Kubernetes DNS
[root@vultr skydns]#kubectl create -f skydns-rc.yaml
replicationcontroller "kube-dns-v9" created
[root@vultr skydns]# kubectl get pod --selector k8s-app=kube-dns --namespace=kube-system
NAME READY STATUS RESTARTS AGE
kube-dns-v9-hgnfh 4/4 Running 0 16s
[root@vultr skydns]# kubectl create -f skydns-svc.yaml
kubectl get service -l k8s-app=kube-dns --namespace=kube-systemservice "kube-dns" created
[root@vultr skydns]# kubectl get service -l k8s-app=kube-dns --namespace=kube-system
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns 172.16.66.66 <none> 53/UDP,53/TCP 2s
kubectl cluster-info
返回结果
Kubernetes master is running at http://localhost:8080
KubeDNS is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/kube-dns
实际上访问
http://master机器IP:8080/api/v1/namespaces/kube-system/services/kube-dns
可以看到详细信息
{ "kind": "Service", "apiVersion": "v1", "metadata": { "name": "kube-dns", "namespace": "kube-system", "selfLink": "/api/v1/namespaces/kube-system/services/kube-dns", ... ...
修改各节点机器上的kubelet配置
vi /etc/sysconfig/kubelet
--cluster-dns=172.16.66.66
--cluster-domain=cluster.local
重启节点机器上的kubelet
systemctl restart kubelet
systemctl status -l kubelet
创建一个测试pod
echo " apiVersion: v1
kind: ReplicationController
metadata:
name: tomcat
spec:
replicas: 1
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: tomcat" > tomcat.yaml
cat tomcat.yaml
kubectl --server=10.99.0.10:8080 create -f tomcat.yaml
kubectl get pod
进入到pod中的第一个容器
kubectl exec tomcat-4d33v -i -t -- bash
查看DNS
cat /etc/resolv.conf
search default.svc.cluster.local svc.cluster.local cluster.local
nameserver 172.16.66.66
options ndots:5
之前创建的pod DNS未改变,需要删除之后重建
kubectl --server=10.99.0.10:8080 delete -f test-1.yaml
kubectl --server=10.99.0.10:8080 delete -f test-2.yaml
kubectl --server=10.99.0.10:8080 delete -f test-3.yaml
kubectl --server=10.99.0.10:8080 delete -f test-4.yaml
kubectl --server=10.99.0.10:8080 create -f test-1.yaml
kubectl --server=10.99.0.10:8080 create -f test-2.yaml
kubectl --server=10.99.0.10:8080 create -f test-3.yaml
kubectl --server=10.99.0.10:8080 create -f test-4.yaml
kubectl --server=10.99.0.10:8080 get pods
进入test-1-cqc6p点的第一个容器查看DNS
kubectl exec test-1-cqc6p -i -t -- bash
cat /etc/resolv.conf
search default.svc.cluster.local svc.cluster.local cluster.local
nameserver 172.16.66.66
options ndots:5
expose 创建tomcat service
kubectl expose replicationcontroller tomcat --port=8080 --target-port=8099
相关推荐
总结来说,"kubernetes-rabbitmq-cluster"项目提供了一个在Kubernetes中部署和管理RabbitMQ集群的有效方法,利用了Kubernetes的强大力量,实现了RabbitMQ服务的高可用性和可扩展性。通过学习和实践这个项目,开发者...
**API扩展和网络插件** 1. **API Aggregation**: 允许扩展Kubernetes API服务器,添加自定义资源。 2. **CustomResourceDefinition (CRD)**: 定义和管理自定义资源。 3. **Network Plugins (CNI)**: 如Flannel、...
1. **安装CoreDNS**:介绍如何使用Kubernetes的YAML文件或Helm图表来部署CoreDNS,通常将其作为ClusterIssuer资源部署到`kube-system`命名空间。 2. **配置CoreDNS**:解释如何修改CoreDNS的配置,例如设置转发策略...
接下来,我们将讨论“k8s入门系列之扩展组件(一)DNS安装篇”。DNS(Domain Name System)是Kubernetes集群中的关键组件,它允许Pods通过服务名而非IP地址互相发现。Kubernetes内置了一个名为CoreDNS的DNS服务器,它...
* 核心层:Kubernetes 最核心的功能,对外提供 API 构建高层的应用,对内提供插件式应用执行环境 * 应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS 解析等) * 管理层:系统...
Kubernetes,通常缩写为k8s,是一种流行的开源容器编排系统,用于自动化容器化应用程序的部署、扩展和管理。这份“kubernetes培训PPT”提供了深入理解Kubernetes架构、核心概念以及实践操作的关键知识点。 1. **...
配置可能涉及输入插件(如从Kubernetes API Server或syslog获取日志)、过滤器插件(如解析JSON格式的日志)和输出插件(如将处理后的日志发送到Elasticsearch)。 最后,`kibana.yaml` 文件是用来部署Kibana的,...
Kubernetes,简称K8s,是一个开源的容器编排系统,用于自动化容器化的应用程序部署、扩展和管理。本指南主要涵盖了Kubernetes集群的部署方法,包括了从基础环境准备到各个组件的详细配置。以下将详细阐述关键知识点...
Kubernetes集群内置了一个DNS插件,使得Pod可以通过名称而不是IP地址来查找Service。每个Pod的DNS配置会自动包含集群DNS服务器的信息,Pod内的应用可以像查询常规域名一样查询Service的名称。例如,如果Service的...
Kubernetes还支持多种扩展插件,例如DNS为服务提供域名解析,Dashboard提供图形界面管理,以及Cluster-level Logging提供集群日志分析。 在Kubernetes中,Pod是最小的部署单位,每个Pod代表一个逻辑主机,拥有自己...
Kubernetes 支持多种 Container Runtime,如 Docker 和 rkt,通过 CNI(Container Network Interface)插件来实现网络隔离,如 Flannel、Calico 和 Weave,提供不同的网络策略。此外,还有附加组件如 CoreDNS 用于...
LKS Cluster Operator不仅负责集群的基本操作,如创建、删除、添加和移除节点,还涵盖了集群插件管理、版本更新和BUG修复。此外,它还提供了一系列增值服务,如应用访问服务、性能数据管理和配置管理服务,以及AIOps...
3. **安装前准备**:在开始安装前,确保所有节点之间可以互相通信,并且已经正确配置了DNS。同时,需要在所有节点上安装Docker或容器运行时环境,以及kubelet、kube-proxy和kube-controller-manager等Kubernetes组件...
- **Cluster Autoscaler**:自动扩展集群大小。 - **ip-masq-agent**:IP地址转换代理。 - **Kubernetes-The-Hard-Way**:一种手动构建Kubernetes集群的方法。 #### 六、插件扩展 - **API扩展**:通过聚合或...
此外,本文档还涉及到了一些常用的 Kubernetes 插件,例如 kubedns、dashboard、heapster (influxdb、grafana)、EFK (elasticsearch、fluentd、kibana),这些插件能够帮助用户更好地监控、管理和操作 Kubernetes ...
Pod可以通过Service的DNS名称或ClusterIP与之通信,即使Service背后的Pod成员发生变化,通信依然可用。 4. **外部到内部的访问** 外部系统要访问Kubernetes集群内的服务,通常有两种方式:通过NodePort或Load...
Kubernetes(简称K8s)是目前最流行的容器编排系统,用于自动化容器化应用程序的部署、扩展和管理。本文将围绕“k8s集群安装文档”和“K8S的Service实现以及系统间集成”的主题,深入探讨Kubernetes的基础知识、安装...