k8s实验2

node节点服务启动顺序:flannel,docker,kubelet,kube-proxy
路由转发要确认开启
一、安装管理控制面板dashboard
k8s实验2_第1张图片
kubernetes-dashboard镜像导入

[root@res ~]# docker load -i kubernetes-dashboard.tar   //导入镜像
[root@res ~]# docker images
[root@res ~]# docker push kubernetes-dashboard-amd64:v1.8.3   //上传镜像
[root@res ~]# curl 192.168.1.90:5000/v2/_catalog   //验证

安装控制面板

[root@k8s-master ~]# vim kube-dashboard.yaml 
...............
        image: 192.168.1.90:5000/kubernetes-dashboard-amd64:v1.8.3 #私有仓库镜像地>址
...............
          - --apiserver-host=http://192.168.1.30:8080 #修改为Master的IP
..............
[root@k8s-master ~]# kubectl create -f kube-dashboard.yaml    //创建控制面板

验证

[root@k8s-master ~]# curl 192.168.1.31:30090   //访问node节点的30090

k8s实验2_第2张图片
k8s实验2_第3张图片
k8s实验2_第4张图片
k8s实验2_第5张图片

[root@k8s-master ~]# kubectl run  test -i -t --image=192.168.1.90:5000/myos:latest
[root@k8s-master ~]# kubectl get pod
[root@k8s-master ~]# kubectl exec -it test-56c767f7dc-qcjxg /bin/bash  进入该容器

k8s实验2_第6张图片
k8s实验2_第7张图片

服务镜像
k8s实验2_第8张图片
k8s实验2_第9张图片
apache的镜像制作

[root@res ~]# cat Dockerfile   
FROM myos:latest
RUN yum install -y httpd php
ENV LANG=C
WORKDIR /var/www/html
EXPOSE 80
CMD {"httpd","-DFOREGROUND"}
[root@res ~]# docker build -t myos:httpd .
[root@res ~]# docker images
[root@res ~]# docker run -itd myos:httpd    //启动容器
[root@res ~]# docker exec  -it 2ae /bin/bash   
[root@res ~]# curl 172.17.0.2    //验证
[root@res ~]# docker tag myos:httpd 192.168.1.90:5000/myos:httpd
[root@res ~]# docker push 192.168.1.90:5000/myos:httpd

service服务
k8s实验2_第10张图片
k8s实验2_第11张图片
k8s实验2_第12张图片
k8s实验2_第13张图片
master

[root@k8s-master ~]# kubectl run  -r 2 apache --image=192.168.1.90:5000/myos:httpd
deployment.apps "apache" created
[root@k8s-master ~]# kubectl get pod -o wide 
[root@k8s-master ~]# curl 10.254.13.4
[root@k8s-master ~]# kubectl expose deployment apache --port=80 --target-port=80 --name=my-httpd
service "my-httpd" exposed
[root@k8s-master ~]# kubectl get service my-httpd   //需要在容器内部使用该IP
[root@k8s-master ~]# kubectl exec -it test-56c767f7dc-qcjxg /bin/bash   //进入别的容器内部验证
[root@test-56c767f7dc-qcjxg /]# curl 10.254.30.13  

kube-dns插件
k8s实验2_第14张图片
kube-dns安装
k8s实验2_第15张图片
k8s实验2_第16张图片
更改如上配置文件后,执行

[root@k8s-master ~]# grep  image kube-dns.yaml   //确认镜像的地址是否正确
[root@k8s-master ~]# kubectl create -f kube-dns.yaml   //安装kube-dns应用
[root@k8s-master ~]# kubectl delete  deployment apache  //删除资源
[root@k8s-master ~]# kubectl -n kube-system get deployment  //查看kube-dns应用
[root@k8s-master ~]# kubectl -n kube-system get service  //查看kube-dns的service服务
[root@k8s-master ~]# kubectl -n kube-system get pod
[root@k8s-master ~]# kubectl apply -f kube-dashboard.yaml



k8s实验2_第17张图片
在所有node节点上配置

[root@k8s-0002 ~]# vim /etc/kubernetes/kubelet   //已该node节点为列
KUBELET_ARGS="--cgroup-driver=systemd --fail-swap-on=false --kubeconfig=/etc/kubernetes/kubelet.kubeconfig --pod-infra-container-image=pod-infrastructure:latest --cluster-dns=10.254.254.253 --cluster-domain=tedu.local"
..............
[root@k8s-master ~]# ansible node -m shell -a 'systemctl restart kubelet'

验证

[root@k8s-master ~]# kubectl run  -r 2 my-apache --image=192.168.1.90:5000/myos:httpd   //启动apache应用
[root@k8s-master ~]# kubectl get pod -o wide
[root@k8s-master ~]# kubectl expose deployment my-apache --port=80 --target-port=80 --name=apache
//创建服务
[root@k8s-master ~]# kubectl get service  //查询服务状态
[root@k8s-master ~]# kubectl run test11 -i -t --image=192.168.1.90:5000/myos:latest
[root@test11-5c8859966c-hwbf7 /]# curl  apache   //用域名访问
[root@k8s-master ~]# kubectl describe pod my-apache-5cc75ff886-r9sb  //查看dns警告是否消失

你可能感兴趣的:(k8s)