内容简介:上次搭建了kubernetes最核心最基础的服务,也学习了一些命令,现在咱们在这个之上proxy和dns,虽然这2个功能非常非常的重要,但是从技术层面他们属于kubernetes的附加组件,可以有也可以没有,如果需要service的功能可以添加kubernetes proxy,如果需要dns通过名字解析服务就需要增加kubernetes dns组件。非必须的功能做成组件的形式,而不是必须安装的形式。这也说明了kubernetes的设计,尽量避免这种强依赖,首先就为集群增加proxy的功能。源码:https
上次搭建了kubernetes最核心最基础的服务,也学习了一些命令,现在咱们在这个之上proxy和dns,虽然这2个功能非常非常的重要,但是从技术层面他们属于kubernetes的附加组件,可以有也可以没有,如果需要service的功能可以添加kubernetes proxy,如果需要dns通过名字解析服务就需要增加kubernetes dns组件。非必须的功能做成组件的形式,而不是必须安装的形式。这也说明了kubernetes的设计,尽量避免这种强依赖,首先就为集群增加proxy的功能。源码:https://github.com/limingios/msA-docker k8s分支和https://github.com/limingios/kubernetes-starter 基础集群的搭建查看32节到34节
为集群增加service功能 – kube-proxy(工作节点102,103)
简介
每台工作节点上都应该运行一个kube-proxy服务,它监听API server中service和endpoint的变化情况,并通过iptables等来为服务配置负载均衡,是让我们的服务在集群外可以被访问到的重要方式。
部署
通过系统服务方式部署:
#确保工作目录存在 mkdir -p /var/lib/kube-proxy #复制kube-proxy服务配置文件 cp ~/kubernetes-starter/target/worker-node/kube-proxy.service /lib/systemd/system/ #复制kube-proxy依赖的配置文件 cp ~/kubernetes-starter/target/worker-node/kube-proxy.kubeconfig /etc/kubernetes/ systemctl enable kube-proxy.service service kube-proxy start journalctl -f -u kube-proxy
9.3 重点配置说明
kube-proxy.service
[Unit]
Description=Kubernetes Kube-Proxy Server
…
[Service]
#工作目录
WorkingDirectory=/var/lib/kube-proxy
ExecStart=/home/michael/bin/kube-proxy \
#监听地址
–bind-address=192.168.1.103 \
#依赖的配置文件,描述了kube-proxy如何访问api-server
–kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig \
…
102的kube-proxy
[Unit] Description=Kubernetes Kube-Proxy Server Documentation=https://github.com/GoogleCloudPlatform/kubernetes After=network.target [Service] WorkingDirectory=/var/lib/kube-proxy ExecStart=/root/bin/kube-proxy \ --bind-address=192.168.66.102 \ --hostname-override=192.168.66.102 \ --kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig \ --logtostderr=true \ --v=2 Restart=on-failure RestartSec=5 LimitNOFILE=65536 [Install] WantedBy=multi-user.target
103的kube-proxy
[Unit] Description=Kubernetes Kube-Proxy Server Documentation=https://github.com/GoogleCloudPlatform/kubernetes After=network.target [Service] WorkingDirectory=/var/lib/kube-proxy ExecStart=/root/bin/kube-proxy \ --bind-address=192.168.66.103 \ --hostname-override=192.168.66.103 \ --kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig \ --logtostderr=true \ --v=2 Restart=on-failure RestartSec=5 LimitNOFILE=65536 [Install] WantedBy=multi-user.target
kube-proxy.kubeconfig
配置了kube-proxy如何访问api-server,内容与kubelet雷同,不再赘述。
操练service
-
查看service
>api的时候就建立的一个service,查看类型是Type:ClusterIp,它有一个虚拟的Ip(10.68.0.1)相当于给apiservice做成了一个服务,一个是集群内的其他组件,可以通过这个ip直接进行访问,不需要依赖具体worker的ip地址了,负载均衡,apiserver的高可用,通过apiserver的ip来完成。上次访问对应的deployment,都是启动代理,然后另一个窗口通过curl的方式来进行访问。
kubectl get services kubectl describe serivce kubernetes
-
deploy升级成为service
>感觉比较乱,命令去执行的2个端口target-port 和port ,在执行service的时候又出现了一个端口,
- 随机的端口23492节点启动的端口,可以通过端口访问服务
- target-port 这个端口实际启动的端口
- port 虚拟ip下需要访问的端口
kubectl expose deploy kubernetes-bootcamp --type="NodePort" --target-port=8080 --port=80
- worker访问
curl http://192.168.66.103:23492
-
进入容器内部访问的话
>通过docker ps 找到容器id,进入容器exec -it 后
curl http://10.68.99.134:80
都是可以curl通的这是符合k8s的规范的pod之间是互通的。
- 通过yaml文件将pod生成services
vi nginx-service.yaml
apiVersion: v1 kind: Service metadata: name: nginx-service spec: ports: - port: 8080 targetPort: 80 nodePort: 20000 selector: app: nginx type: NodePort
为集群增加dns功能 – kube-dns(app)
简介
kube-dns为Kubernetes集群提供命名服务,主要用来解析集群服务名和Pod的hostname。目的是让pod可以通过名字访问到集群内服务。它通过添加A记录的方式实现名字和service的解析。普通的service会解析到service-ip。headless service会解析到pod列表。
部署
通过kubernetes应用的方式部署
kube-dns.yaml文件基本与官方一致(除了镜像名不同外)。
里面配置了多个组件,之间使用”—“分隔
#到kubernetes-starter目录执行命令 kubectl create -f target/services/kube-dns.yaml
在特定的命名空间中
kubectl -n kube-system get svc
只要安装了这个后,直接可以通过名称访问
说白了 只要运行dns服务,就可以直接用啦。
PS:基础集群的没有经过认证授权,也就基本完成了,这些组件就是每个k8s公司所必须的,非常重要非常核心,整个集群的搭建让老铁对k8s有个深入的了解,了解每个组件都是干啥用的,让老铁觉得k8s没有那么复杂,通过上边的安装,确实没有mesos和swarm那么简单,但是也没有那么复杂。一定要熟悉k8s的命令。下次了解下认证的授权。
>>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
>>原文链接地址:上一篇:已是最新文章
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Kafka集群内复制功能深入剖析
- 多个Kubernetes 集群同Gitlab Core功能的集成
- Sentinel 发布 v1.4,添加集群流控功能
- Sentinel 发布 v1.4,添加集群流控功能
- Sentinel v1.4.2 发布,更好用的集群限流功能
- Elasticsearch 集群搭建和集群原理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Structures and Algorithm Analysis in Java
Mark A. Weiss / Pearson / 2011-11-18 / GBP 129.99
Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course wa......一起来看看 《Data Structures and Algorithm Analysis in Java》 这本书的介绍吧!