李明
|
为集群增加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
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
kubectl get services kubectl describe serivce kubernetes
kubectl expose deploy kubernetes-bootcamp --type="NodePort" --target-port=8080 --port=80
curl http://192.168.66.103:23492
curl http://10.68.99.134:80
vi nginx-service.yamlapiVersion: 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
在特定的命名空间中
只要安装了这个后,直接可以通过名称访问
PS:基础集群的没有经过认证授权,也就基本完成了,这些组件就是每个k8s公司所必须的,非常重要非常核心,整个集群的搭建让老铁对k8s有个深入的了解,了解每个组件都是干啥用的,让老铁觉得k8s没有那么复杂,通过上边的安装,确实没有mesos和swarm那么简单,但是也没有那么复杂。一定要熟悉k8s的命令。下次了解下认证的授权。
|
2019-02-23 11:22:52