k8s笔记009kubedns部署.docx

上传人:b****3 文档编号:12865565 上传时间:2023-04-22 格式:DOCX 页数:13 大小:16.59KB
下载 相关 举报
k8s笔记009kubedns部署.docx_第1页
第1页 / 共13页
k8s笔记009kubedns部署.docx_第2页
第2页 / 共13页
k8s笔记009kubedns部署.docx_第3页
第3页 / 共13页
k8s笔记009kubedns部署.docx_第4页
第4页 / 共13页
k8s笔记009kubedns部署.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

k8s笔记009kubedns部署.docx

《k8s笔记009kubedns部署.docx》由会员分享,可在线阅读,更多相关《k8s笔记009kubedns部署.docx(13页珍藏版)》请在冰豆网上搜索。

k8s笔记009kubedns部署.docx

k8s笔记009kubedns部署

k8s笔记009-kube-dns部署

1.准备镜像

1.1下载镜像

[root@harbor~]#dockerpull

[root@harbor~]#dockerpull

[root@harbor~]#dockerpull

1.2对下载的镜像重新打tag

[root@harbor~]#dockertag192.168.1.170/tzg-prod/k8s-dns-dnsmasq-nanny-amd64:

1.14.1

[root@harbor~]#dockertag192.168.1.170/tzg-prod/k8s-dns-kube-dns-amd64:

1.14.1

[root@harbor~]#dockertag192.168.1.170/tzg-prod/k8s-dns-sidecar-amd64:

1.14.1

1.3将镜像上传到私有仓库

[root@harbor~]#dockerpush192.168.1.170/tzg-prod/k8s-dns-dnsmasq-nanny-amd64:

1.14.1

[root@harbor~]#dockerpush192.168.1.170/tzg-prod/k8s-dns-kube-dns-amd64:

1.14.1

[root@harbor~]#dockerpush192.168.1.170/tzg-prod/k8s-dns-sidecar-amd64:

1.14.1

1.4删除下载的镜像

[root@harbor~]#dockerrmi

[root@harbor~]#dockerrmi

[root@harbor~]#dockerrmi创建yaml文件

2.1创建ConfigMap文件

[root@k8s-master01kubedns]#vikubedns-cm.yaml

apiVersion:

v1

kind:

ConfigMap

metadata:

name:

kube-dns

namespace:

kube-system

labels:

addonmanager.kubernetes.io/mode:

EnsureExists

2.2创建ControllerManager文件

[root@k8s-master01kubedns]#vikubedns-cm.yaml

apiVersion:

v1

kind:

ConfigMap

metadata:

name:

kube-dns

namespace:

kube-system

labels:

addonmanager.kubernetes.io/mode:

EnsureExists

[root@k8s-master01kubedns]#catkubedns-controller.yaml

apiVersion:

extensions/v1beta1

kind:

Deployment

metadata:

name:

kube-dns

namespace:

kube-system

labels:

k8s-app:

kube-dns

kubernetes.io/cluster-service:

"true"

addonmanager.kubernetes.io/mode:

Reconcile

spec:

strategy:

rollingUpdate:

maxSurge:

10%

maxUnavailable:

0

selector:

matchLabels:

k8s-app:

kube-dns

template:

metadata:

labels:

k8s-app:

kube-dns

annotations:

scheduler.alpha.kubernetes.io/critical-pod:

''

spec:

tolerations:

-key:

"CriticalAddonsOnly"

operator:

"Exists"

volumes:

-name:

kube-dns-config

configMap:

name:

kube-dns

optional:

true

containers:

-name:

kubedns

image:

192.168.1.170/tzg-prod/k8s-dns-kube-dns-amd64:

1.14.1

resources:

limits:

memory:

170Mi

requests:

cpu:

100m

memory:

70Mi

livenessProbe:

httpGet:

path:

/healthcheck/kubedns

port:

10054

scheme:

HTTP

initialDelaySeconds:

60

timeoutSeconds:

5

successThreshold:

1

failureThreshold:

5

readinessProbe:

httpGet:

path:

/readiness

port:

8081

scheme:

HTTP

initialDelaySeconds:

3

timeoutSeconds:

5

args:

---domain=cluster.local.

---dns-port=10053

---config-dir=/kube-dns-config

---v=2

env:

-name:

PROMETHEUS_PORT

value:

"10055"

ports:

-containerPort:

10053

name:

dns-local

protocol:

UDP

-containerPort:

10053

name:

dns-tcp-local

protocol:

TCP

-containerPort:

10055

name:

metrics

protocol:

TCP

volumeMounts:

-name:

kube-dns-config

mountPath:

/kube-dns-config

-name:

dnsmasq

image:

192.168.1.170/tzg-prod/k8s-dns-dnsmasq-nanny-amd64:

1.14.1

livenessProbe:

httpGet:

path:

/healthcheck/dnsmasq

port:

10054

scheme:

HTTP

initialDelaySeconds:

60

timeoutSeconds:

5

successThreshold:

1

failureThreshold:

5

args:

--v=2

--logtostderr

--configDir=/etc/k8s/dns/dnsmasq-nany

--restartDnsmasq=true

---

--k

---cache-size=1000

---log-facility=-

---server=/cluster.local./127.0.0.1#10053

---server=/in-addr.arpa/127.0.0.1#10053

---server=/ip6.arpa/127.0.0.1#10053

ports:

-containerPort:

53

name:

dns

protocol:

UDP

-containerPort:

53

name:

dns-tcp

protocol:

TCP

resources:

requests:

cpu:

150m

memory:

20Mi

volumeMounts:

-name:

kube-dns-config

mountPath:

/etc/k8s/dns/dnsmasq-nanny

-name:

sidecar

image:

192.168.1.170/tzg-prod/k8s-dns-sidecar-amd64:

1.14.1

livenessProbe:

httpGet:

path:

/metrics

port:

10054

scheme:

HTTP

initialDelaySeconds:

60

timeoutSeconds:

5

successThreshold:

1

failureThreshold:

5

args:

---v=2

---logtostderr

---probe=kubedns,127.0.0.1:

10053,kubernetes.default.svc.cluster.local.,5,A

---probe=dnsmasq,127.0.0.1:

53,kubernetes.default.svc.cluster.local.,5,A

ports:

-containerPort:

10054

name:

metrics

protocol:

TCP

resources:

requests:

memory:

20Mi

cpu:

10m

dnsPolicy:

Default

serviceAccountName:

kube-dns

2.3创建ServiceAccount文件

[root@k8s-master01kubedns]#vikubedns-sa.yaml

apiVersion:

v1

kind:

ServiceAccount

metadata:

name:

kube-dns

namespace:

kube-system

labels:

kubernetes.io/cluster-service:

"true"

addonmanager.kubernetes.io/mode:

Reconcile

2.4创建Service文件

[root@k8s-master01kubedns]#vikubedns-svc.yaml

apiVersion:

v1

kind:

Service

metadata:

name:

kube-dns

namespace:

kube-system

labels:

k8s-app:

kube-dns

kubernetes.io/cluster-service:

"true"

addonmanager.kubernetes.io/mode:

Reconcile

kubernetes.io/name:

"KubeDNS"

spec:

selector:

k8s-app:

kube-dns

clusterIP:

169.169.0.2

ports:

-name:

dns

port:

53

protocol:

UDP

-name:

dns-tcp

port:

53

protocol:

TCP3.根据yaml文件创建ConfigMap、ControllerManager、ServiceAccount、Service

3.1创建对象

[root@k8s-master01kubedns]#ls

kubedns-cm.yamlkubedns-controller.yamlkubedns-sa.yamlkubedns-svc.yaml

[root@k8s-master01kubedns]#kubectlcreate-f.

configmap"kube-dns"created

deployment"kube-dns"created

serviceaccount"kube-dns"created

service"kube-dns"created

3.2查看Deployment

[root@k8s-master01kubedns]#kubectlgetdeploy--all-namespaces

NAMESPACENAMEDESIREDCURRENTUP-TO-DATEAVAILABLEAGE

kube-systemkube-dns11111m

3.3查看Pods

[root@k8s-master01kubedns]#kubectlgetpods--all-namespaces

NAMESPACENAMEREADYSTATUSRESTARTSAGE

kube-systemkube-dns-1869960205-tng143/3Running055s

3.4查看Service

[root@k8s-master01kubedns]#kubectlgetsvc--namespace=kube-system

NAMECLUSTER-IPEXTERNAL-IPPORT(S)AGE

kube-dns169.169.0.253/UDP,53/TCP1m

3.5查看ConfigMap

[root@k8s-master01kubedns]#kubectlgetConfigMap--all-namespaces

NAMESPACENAMEDATAAGE

kube-systemextension-apiserver-authentication14d

kube-systemkube-dns01m4.修改kubelet配置(所有节点上都需要操作)

4.1kubelet启动参数增加cluster-dns配置

[root@k8s-master01~]#vi/etc/kubernetes/kubelet

KUBELET_ARGS="--api-servers=https:

//172.18.0.200:

6443--hostname-override=172.18.0.142--logtostderr=false--log-dir=/opt/logs/kubernetes--v=2--allow-privileged=true

--kubeconfig=/etc/kubernetes/kubelet-kubeconfig--cgroup-driver=systemd--cluster-dns=169.169.0.2--cluster-domain=cluster.local."

4.2重启kubelet

[root@k8s-master01~]#systemctlrestartkubelet5.校验kubedns功能

5.1创建一个my-nginx的Deployment文件

[root@k8s-master01testkubedns]#vimmy-nginx-deployment.yaml

apiVersion:

extensions/v1beta1

kind:

Deployment

metadata:

name:

my-nginx

spec:

replicas:

2

template:

metadata:

labels:

run:

my-nginx

spec:

containers:

-name:

my-nginx

image:

nginx

ports:

-containerPort:

80

5.2创建Deployment

[root@k8s-master01testkubedns]#kubectlcreate-f./my-nginx-deployment.yaml

deployment"my-nginx"created

[root@k8s-master01testkubedns]#kubectlgetdeploymy-nginx

NAMEDESIREDCURRENTUP-TO-DATEAVAILABLEAGE

my-nginx22221m

5.3发布服务

[root@k8s-master01testkubedns]#kubectlexposedeploymy-nginx

service"my-nginx"exposed

[root@k8s-master01testkubedns]#kubectlgetsvcmy-nginx

NAMECLUSTER-IPEXTERNAL-IPPORT(S)AGE

my-nginx169.169.255.4580/TCP8s

[root@k8s-master01testkubedns]#kubectlgetsvcmy-nginx-oyaml

apiVersion:

v1

kind:

Service

metadata:

creationTimestamp:

2017-09-12T12:

41:

01Z

labels:

run:

my-nginx

name:

my-nginx

namespace:

default

resourceVersion:

"135846"

selfLink:

/api/v1/namespaces/default/services/my-nginx

uid:

a26d00c0-97b7-11e7-8c4a-000c298d23b9

spec:

clusterIP:

169.169.255.45

ports:

-port:

80

protocol:

TCP

targetPort:

80

selector:

run:

my-nginx

sessionAffinity:

None

type:

ClusterIP

status:

loadBalancer:

{}

5.4再创建一个deployment

[root@k8s-master01testkubedns]#kubectlrunnginx--image=nginx

deployment"nginx"created

[root@k8s-master01testkubedns]#kubectlgetpods

NAMEREADYSTATUSRESTARTSAGE

my-nginx-4293833666-1z7q71/1Running03m

my-nginx-4293833666-37mcr1/1Running03m

nginx-4217019353-8gq4f1/1Running05s

5.5拷贝ping命令及相关lib库到新启动的nginxpod中

[root@k8s-master01testkubedns]#kubectlcp/usr/bin/pingnginx-4217019353-whx5b:

/usr/bin/

[root@k8s-master01testkubedns]#kubectlcp/usr/lib64/libcap.so.2nginx-4217019353-whx5b:

/usr/lib/

[root@k8s-master01testkubedns]#kubectlcp/usr/lib64/libidn.so.11nginx-4217019353-whx5b:

/usr/lib/

[root@k8s-master01testkubedns]#kubectlcp/usr/lib64/libcrypto.so.10nginx-4217019353-whx5b:

/usr/lib/

5.5进入新启动的nginxpod中,然后ping之前创建的my-nginx服务,看是否能正常解析到dns地址

[root@k8s-master01testkubedns]#kubectlexecnginx-4217019353-whx5b-ti--/bin/bash

root@nginx-4217019353-whx5b:

/#pingmy-nginx

PINGmy-nginx.default.svc.cluster.local(169.169.255.45)56(84)bytesofdata.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1